gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:59 24 4
gpt4 key购买 nike

我正在创建一个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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com