在Python中每次将字符串写入文件的新行



我有一个循环,每次都要在新行上写入文本。。下面是Python中的代码:

for j in b:
data = json.loads(json.dumps(j))
data = json.dumps(data)
data = json.loads(data)
from_id = data['from_id']
text = data['text']
if (os.path.exists(f'{user_id}.txt')):
with open(f'{user_id}.txt', 'w', encoding='utf-8') as file:
file.write(f'{from_id}: {text}n')

我试着在最后使用n,但它不适合我。结果为它只写最后一行

:

Abcdefg
Gkfdjawsfd
fasfjk

结果:

fasfjk

写模式w从文件开头开始写。

当代码不循环时,您只需要追加,只需追加模式a,它看起来像:

with open(f'{user_id}.txt', 'a', encoding='utf-8') as file:
file.write(f'{from_id}: {text}n')

但是这里你有一个循环,文件不依赖于循环(user_id没有在循环中定义),所以你可以在循环外打开文件一次

with open(f'{user_id}.txt', 'w', encoding='utf-8') as file:
for data in b:
from_id = data['from_id']
text = data['text']
file.write(f'{from_id}: {text}n')

而且转储/加载部分似乎无用,我删除了它

最新更新