У меня есть код, который записывает имя пользователя + фамилию + счет в файле excel. Но я хочу, чтобы у него заголовок, например, «Имя», «Фамилия» и «Оценка» в первой строке. Затем каждый раз, когда код перезапускается, я хочу, чтобы новые данные сохранялись в новом столбце под этим заголовком.Запись строки в новую строку
ответ
Вам нужно определить, был ли у вас уже открыт один или несколько строк, написанных ранее. Легкий способ сделать это - вызвать метод tell
в файле после того, как вы открыли его в режиме добавления. tell
сообщит текущую позицию в файле, которая будет завершена в режиме добавления. Вам нужно только написать заголовок, если позиция 0
, так как это указывает, что файл был пуст.
if form == 'a': #if form entered is a
with open ('classa.csv','a',newline='') as keerthan:
foo = csv.writer(keerthan,delimiter=',',)
if keerthan.tell() == 0: # add this test!
bar = ['Name', 'Surname', 'Score']
foo.writerow(bar)
bar = [[user,surname, score]]
foo.writerows(bar)
Другое дело (не связанное с вопросом заголовка файла): вы действительно должны избегать дублирования так много кода между различными if
заявления. Часто вы можете использовать одну и ту же логику, используя разные значения. Вот как вы можете превратить if
выше в общий фрагмент кода, который может быть использован для всех трех форм:
filename = "class{}".format(form) # use string formatting to get the right filename
with open (filename,'a',newline='') as keerthan: # open the file using a variable name
foo = csv.writer(keerthan,delimiter=',',)
if keerthan.tell() == 0:
bar = ['Name', 'Surname', 'Score']
foo.writerow(bar)
bar = [[user,surname, score]]
foo.writerows(bar)
Вы можете, вероятно, сделать что-то подобное для Q & код, с ответом и arithmatic оператора сохраняются в переменных.
Благодарю вас за ответ. Теперь я понимаю, как очистить мою работу ^^. Спасибо за эту помощь, но за часть заголовка я ввел то, что вы предложили, но получил ошибку. строка 83, в
Я проверил файл excel, и название, казалось, было там, но из-за того, что у меня была эта ошибка, я не думаю, что мои данные хранятся, например, имя + фамилия + оценка ниже заголовка соответственно. – ImYu
Хм, эта ошибка подсказывает, что файл 'keerthan' был закрыт, прежде чем вы вызываете' tell' на нем. Вы уверены, что у вас есть отпечаток кода прямо на вашем конце? Вызов 'tell()' должен быть отступом как часть блока, следующего за символом 'with open (...) как keerthan'. Оператор 'with' автоматически закрывает файл, когда заканчивается его блок. – Blckknght
- 1. Python - Запись в новую строку
- 2. Автоматически создавать новую строку условно на новую уникальную запись
- 3. Visual Basic - Запись/переписывание в текстовую строку добавляет новую строку
- 4. Edittext введите новую строку строки вместо строки
- 5. Добавить запись в новую запись
- 6. Добавить новую строку в строку
- 7. SQL - Разбиение строки в новую строку
- 8. Строки не записываются в новую строку
- 9. Запись в файл дает только новую строку при первом выполнении
- 10. Как вставить новую строку в строковую запись SQL/Rails?
- 11. Как сохранить новую запись
- 12. Запись в новую строку в python в режиме добавления
- 13. Как вставить новую запись (строку или строку) после последней строки входного файла с помощью awk?
- 14. Запись в новую строку файла в Objective-C
- 15. Запись в новую строку в файле с использованием Commons IO?
- 16. Заменить строку на новую строку
- 17. Как выделить новую добавленную запись в MVC?
- 18. Заменить новую строку в python при чтении строки для строки
- 19. Добавить новую строку при конкатенации строки переменной
- 20. Добавить новую строку из синтаксической строки xml
- 21. Как обновить строку в mysql и вставить новую запись?
- 22. Запись в новую строку каждый раз, когда функция повторяется?
- 23. кол-во запросов, если одна запись добавлена в новую строку?
- 24. Как добавить новую строку (запись) в ui-сетку
- 25. Javascript; разбиение строки на новую строку
- 26. Удалить новую строку из строки char C++
- 27. не может удалить новую строку из строки
- 28. командной строки, возвращающей новую строку немедленно
- 29. Разбиение строки на новую строку VB.NET
- 30. Поиск внутри строки, содержащей новую строку?
Просьба переставить код с некоторым отступом. Учитывая важность отступов в Python, мы только догадываемся, что ваш код должен делать, как он есть. – kdopen
@kdopen извините, я не знал, как отправить его точным образом, поэтому я думал, что вам просто нужно сделать все в соответствии с текстом. Исправлено отступы. – ImYu