在 Python 中写入文件时无法添加新行
I can't add a new line when writing a file in Python
我正在python中制作数据文件:
use = input('')
if use == '2':
taken = []
names = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
file_name1 = random.choice(names)
file_name2 = random.choice(names)
file_name3 = random.choice(names)
file_name4 = random.choice(names)
file_name = (file_name1 + file_name2 + file_name3 + file_name4)
if file_name in taken:
print('An error occurred, please try again!')
else:
taken.append(file_name)
file = open('logs.txt', 'w')
file.write(file_name + '\n')
file.close()
print('Done')
每次我运行这个我想添加一个换行符但实际上它总是修改第一行,为什么?
我想你想要的是附加到文件,而不是写入(如果文件已经存在则截断):
# ...
else:
taken.append(file_name)
file = open('logs.txt', 'a+') # 'a+' mode instead of 'w' mode
file.write(file_name + '\n')
file.close()
# ...
参考document.
使用 open(file, mode) 以文件的路径名作为文件,模式为“w”打开文件进行写入。调用文件。 write(data) 以数据作为字符串,包含换行符“\n”作为其最后一个字符,将一行写入文件并为下一个写入的字符串创建一个新行。
我正在python中制作数据文件:
use = input('')
if use == '2':
taken = []
names = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
file_name1 = random.choice(names)
file_name2 = random.choice(names)
file_name3 = random.choice(names)
file_name4 = random.choice(names)
file_name = (file_name1 + file_name2 + file_name3 + file_name4)
if file_name in taken:
print('An error occurred, please try again!')
else:
taken.append(file_name)
file = open('logs.txt', 'w')
file.write(file_name + '\n')
file.close()
print('Done')
每次我运行这个我想添加一个换行符但实际上它总是修改第一行,为什么?
我想你想要的是附加到文件,而不是写入(如果文件已经存在则截断):
# ...
else:
taken.append(file_name)
file = open('logs.txt', 'a+') # 'a+' mode instead of 'w' mode
file.write(file_name + '\n')
file.close()
# ...
参考document.
使用 open(file, mode) 以文件的路径名作为文件,模式为“w”打开文件进行写入。调用文件。 write(data) 以数据作为字符串,包含换行符“\n”作为其最后一个字符,将一行写入文件并为下一个写入的字符串创建一个新行。