python-3.x - 在python中将字符串写入文本文件

我使用以下代码在 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)

https://stackoverflow.com/questions/73133227/

相关文章:

laravel - "npm run watch"不工作并返回错误 's saying ' 缺少 "

node.js - 类型不可分配给 express-jwt 中的类型 'GetVerificatio

php - 如何确定数据是在 PHP 中增加还是减少

c++ - 带 abs() 的方程给出了错误的答案 (gcc/g++)

python - 如何获取 Pandas 表中所有命名类别的最大值

java - HashMap.clear() 减少内存?

c - C语言中如何减少或替换else if语句?

c - 打包的相同结构是否保证具有相同的内存布局?

r - 如何在 R 中将向量分解为连续的组

python - 如何从不同文件导入和调用 'main'函数