Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 删除CSV中的整个特定行_Python_Csv - Fatal编程技术网

Python 删除CSV中的整个特定行

Python 删除CSV中的整个特定行,python,csv,Python,Csv,初始化文件如下所示: 1;2019-03-20 22:43:00.934775;200;3;60;0.05;0.05;20_File_18289094.csv;2; 2;2019-03-20 22:46:42.582782;200;3;60;0.05;0.05;21_File_16565692.csv;2; 3;2019-03-20 22:46:52.971144;200;3;60;0.05;0.05;22_File_22368393.csv; 我想读取并删除同一文件的特定行,我的目标是查找行

初始化文件如下所示:

1;2019-03-20 22:43:00.934775;200;3;60;0.05;0.05;20_File_18289094.csv;2;
2;2019-03-20 22:46:42.582782;200;3;60;0.05;0.05;21_File_16565692.csv;2;
3;2019-03-20 22:46:52.971144;200;3;60;0.05;0.05;22_File_22368393.csv;
我想读取并删除同一文件的特定行,我的目标是查找行的第一列,并将其完全删除。到目前为止,这是我的代码,但它只是在替换;对,

这就行了

使用允许读写的r+标志打开文件

outdata是帖子清理内容的占位符列表

在本例中,循环检查第一个值是否与匹配,否则将其添加到将要写出的日期

seek会让您返回到文件的开头,否则会出现类似于append的行为

写下你清理过的内容

truncate删除之前尚未写入的数据,否则将得到第2、3、3行

with open("file_master", 'r+') as outf:
    outdata = []
    for line in outf.read().split("\n"):
        line_items = line.split(";")
        if line_items[0] == "1":
            pass
        else:
            outdata.append(",".join(line_items))
    outf.seek(0)
    outf.write("\n".join(outdata))
    outf.truncate()

我想你忘了提你想解决的问题了。也就是说,您的读者可能不会读取任何内容,因为当您尝试从中读取时,它所读取的文件已在context@MadWombatHi thank我想删除整行如果行的第一列等于1Hi thank u,我想删除整行而不仅仅是第一列,如果行的第一列等于1。
with open("file_master", 'r+') as outf:
    outdata = []
    for line in outf.read().split("\n"):
        line_items = line.split(";")
        if line_items[0] == "1":
            pass
        else:
            outdata.append(",".join(line_items))
    outf.seek(0)
    outf.write("\n".join(outdata))
    outf.truncate()