我使用以下代码在 python 中生成一些随机字符串:
import string
import random
import os
passphrases = []
pass_file = open("Passphrases2.txt","w")
os.chmod("Passphrases2.txt",0o777)
for _ in range(100):
st = "".join(random.choice(string.ascii_lowercase + string.ascii_uppercase + string.digits) for i in range(random.randint(8,16)))
passphrases.append(st)
print(st)
for p in passphrases:
pass_file.write("\n"%p)
我希望将这些字符串存储在与 python 代码相同目录下的文本文件中。
当我执行这段代码时,会创建一个名为 Passphrases2.txt
的文件,但在第一次执行时它是空的。
当我第二次执行相同的代码时,文件会更新为第一次执行时生成的字符串,然后在第三次运行时,它会更新为第二次执行时生成的字符串,依此类推.我无法弄清楚为什么会这样。
最佳答案
您需要.close()
文件或使用with
语句。
这包括一些优化:
import os
from random import choice, randint
import string
alphabet = string.ascii_lowercase + string.ascii_uppercase + string.digits
with open("Passphrases2.txt", "w") as pass_file:
for _ in range(1000):
st = "".join(choice(alphabet) for i in range(randint(8, 16)))
print(st)
pass_file.write(f"{st}\n")
os.chmod("Passphrases2.txt", 0o777)
关于python-3.x - 在python中将字符串写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73133227/