python - 随机字符串生成 I/O python

标签 python string random

我正在创建一个Python脚本,它应该在每次生成新字符串时创建一个新文件(每次执行脚本时,它都会将字符串打印到文件中),并且还将这个随机字符串与一个字符串进行比较文本如下:这是一个字符串,它位于另一个已创建的文件上。

例如,字符串 THIS IS A STRING 位于名为 file.dat 的文件中,在本例中,应将随机生成的字符串写入文件中我将其命名为 newfile.txt

但是,我有这个代码:

import string
import random

file = open('file.dat', 'r')
file=file.read()
print file

def id_generator(size=28, chars=string.ascii_uppercase + string.digits):
    return ''.join(random.choice(chars) for _ in range(size))
file = open("newfile.txt", "w")
file.write(id_generator())
file.close()

此代码只是读取 file.dat 存档,将其打印到控制台,然后生成一个随机字符串并将其存储在名为 newfile.txt 的文件中,但是它不比较任何内容,因此,为了实现这一点,我修改了如下代码:

import string
import random

file = open('bullshit.dat', 'r')
file=file.read()
print file

def id_generator(size=28, chars=string.ascii_uppercase + string.digits):
    return ''.join(random.choice(chars) for _ in range(size))
with open("newfile.txt", "r") as f: stored = f.readline() 
if stored == id_generator(): 
    print('success!')

现在,我的问题是,这段代码只是读取一个已经创建的文件,即 newfile.txt,我需要创建一个新文件,就像我之前的代码一样,但比较字符串.

我尝试修改最后三行,如下所示:

with open("newfile.txt", "w") as f: stored = f.readline() 
if stored == id_generator(): 
    print('success!')

但这让我很困惑:

Traceback (most recent call last):
File "string2.py", line 20, in <module>
with open("newfile.txt", "w") as f: stored = f.readline() 
IOError: File not open for reading

如何完成类似于第一个版本的操作,但将字符串与第二个版本进行比较?

最佳答案

解决方案,您的“w”只能写入文件,因此您必须将其打开为“r”来读取它。

import string
import random

file = open('test.dat', 'r')
file=file.read()
print file

def id_generator(size=28, chars=string.ascii_uppercase + string.digits):
    return ''.join(random.choice(chars) for _ in range(size))
with open("newfile.txt", "r") as f: stored = f.readline()
if stored == id_generator():
    print('success!')

关于python - 随机字符串生成 I/O python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40335714/

相关文章:

python - 更改 python 对象的类(强制转换)

python - 使用 python 创建蜂鸣器系统

javascript - 将字符串拆分为 n 长度的数组

java - 如何管理三角形中的不同顶点

c# - 从 2 个不同的范围生成随机数

python - 使用列表理解和 for 循环以相反的顺序逐行打印嵌套列表 - Python

python - 什么是多维字典?

python - 匹配字符串结尾

python - 从列表中提取字符串

java - 如何有效地只生成奇数(或偶数)随机数?