Я делаю файл данных на 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')

Но затем он модифицирует первую строку, а не пропускает?

0
Benni 10 Окт 2021 в 07:03

2 ответа

Лучший ответ

Я думаю, что вы хотите добавить в файл, а не писать (обрезать файл, если он уже существует):

    # ...

    else:
        taken.append(file_name)
        file = open('logs.txt', 'a+')  # 'a+' mode instead of 'w' mode
        file.write(file_name + '\n')
        file.close()
    # ...

См. документ.

0
rustyhu 10 Окт 2021 в 04:27

Используйте open (file, mode) с путем к файлу как file и mode как «w», чтобы открыть файл для записи. Вызов файла. write (data) с данными в виде строки, содержащей символ новой строки «\ n» в качестве последнего символа, чтобы записать строку в файл и создать новую строку для следующей записанной строки.

0
Abhinav Kourav 10 Окт 2021 в 04:54