在 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”作为其最后一个字符,将一行写入文件并为下一个写入的字符串创建一个新行。