Как бы вы удалили указанную строку c без использования панды в Python 3.4.4? - PullRequest
0 голосов
/ 20 января 2020

Я пытался найти способы удаления выбранной строки, но единственный способ сделать это - с помощью panda.

Что я хочу сделать, это удалить всю строку, которая соответствует библиотеке csv (ошибки в порядке, так как я создаю код, если строка не существует), так как я разработал код вокруг указанной библиотеки, мне сказали, что wb работает вокруг удаления строк, но я могу удалить только 2 ячейки вместо (что даже не работает)

with open('StudentDetails.csv', 'wb',) as csvfile:
      csvFileWriter = csv.writer(csvfile)
      a = delete_student_entry.get()
      b = delete_password_entry.get()
      csvFileWriter.writerow([a,b])

1 Ответ

0 голосов
/ 20 января 2020

Вы можете сделать это по старинке (если вы хотите избежать использования pandas) -

with open("StudentDetails.csv", "r") as f:
    lines = f.readlines()
with open("StudentDetails.csv", "w") as f:
    for line in lines:
        if line.strip("\n") != "YOUR ROW HERE":
            f.write(line)

Это перезапишет файл при удалении строки, которую вы хотите избежать.

Если вы действительно хотите использовать библиотеку csv, вы можете сделать следующее -

import csv

with open('StudentDetails.csv', newline='') as csvfile:
     csvreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
     output = [x for x in csvreader if x != [YOUR LINE HERE AS A STRING]]

with open('StudentDetails.csv', 'w', newline='') as csvfile:
    csvreader = csv.writer(csvfile, delimiter=' ',
                            quotechar='|', quoting=csv.QUOTE_MINIMAL)
    for x in output:
        csvreader.writerow(x)
...