在Python 3.4.4中,如果不使用panda,如何删除特定行?

在Python 3.4.4中,如果不使用panda,如何删除特定行?,python,excel,python-3.x,csv,python-3.4,Python,Excel,Python 3.x,Csv,Python 3.4,我试图找到删除选定行的方法,但唯一的方法是使用panda 我想做的是删除与csv库匹配的整行(错误是可以的,因为如果该行不存在,我将生成代码),因为我已经围绕该库开发了代码,我被告知“wb”可以删除行,但我只能删除2个单元格(这甚至不起作用) 你可以用老式的方法(如果你想避免使用熊猫)- 这将在删除要避免的行时覆盖文件 如果您确实想使用csv库,可以执行以下操作- import csv with open('StudentDetails.csv', newline='') as csvfile

我试图找到删除选定行的方法,但唯一的方法是使用panda

我想做的是删除与csv库匹配的整行(错误是可以的,因为如果该行不存在,我将生成代码),因为我已经围绕该库开发了代码,我被告知“wb”可以删除行,但我只能删除2个单元格(这甚至不起作用)


你可以用老式的方法(如果你想避免使用熊猫)-

这将在删除要避免的行时覆盖文件

如果您确实想使用
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)

您可以逐行读取原始文件并检查哪一行写入新文件,然后将新文件重命名为旧名称。这可能与此无关,但您可以升级Python版本吗?3.4已经有一段时间不受支持了。mode
w
delete all from file-您必须再次写入需要保留的所有行-但首先您必须将所有行读取到memory@AlexHall我应该这么做,谢谢你的提醒。@furas这真是个好主意。。。如果我不需要该文件,它是登录系统的一部分:(
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)
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)