#python #csv #writing
Вопрос:
я пытаюсь создать код python, который берет имя, фамилию и специальность и помещает их в csv-файл. прямо сейчас у меня возникли проблемы, потому что этот код просто перезаписывает все, что находится в первой строке. Как мне заставить его найти последнюю строку и написать в ней?
`import csv
read_write = input("ENTER 0 FOR WRITE OR 1 FOR READ: ")
print(read_write)
if (read_write < '1'): # write CSV
outfile = open("group_info.csv", 'w', newline="")
Fname = input("ENTER FIRST NAME: ")
Lname = input("ENTER LAST NAME: ")
Major = input("ENTER MAJOR: ")
info = "{},{},{}n".format(Fname, Lname, Major)
outfile.write(info)
outfile.close()`
Ответ №1:
Попробуйте изменить
outfile = open("group_info.csv", 'w', newline="")
Для
outfile = open("group_info.csv", 'a', newline="")
и посмотрим, поможет ли это вам 🙂 Не знаю , почему вы указываете newline=""
, но у вас, вероятно, есть веская причина для этого — я бы не стал.
Ответ №2:
В данный момент вы открываете файл в режиме записи, в котором удаляются предыдущие данные. Вам нужно открыть его в режиме добавления, который откроет предыдущий файл и в конце добавит новые данные. Измените свой код с
outfile = open("group_info.csv", 'w', newline="")
Для
outfile = open("group_info.csv", 'a', newline="")
Ответ №3:
Если вы хотите добавить новые данные в конец файла, вам нужно изменить свой код в строке 7 следующим образом:
outfile = open("group_info.csv", 'a', newline="")
Он откроет файл в «режиме добавления», который откроет файл для записи, добавив его в конец файла, если он существует.
И почему ваш код перезаписывает все, что находится в первой строке?
Потому что, когда мы открываем файл, курсор указывает на данные файла. Ваша операция чтения или записи будет следовать за курсором. И курсор указывает на первую позицию, если вы открываете файл в режиме «w», поэтому ваша следующая операция записи перезаписывает первую строку ваших данных. Когда мы открываем файл в «режиме добавления», курсор будет указывать на предпоследнюю позицию файла, поэтому ваша следующая операция записи будет добавлена в конец файла.
Вы можете прочитать документацию по Python open
, если вам нужно знать подробности.