【发布时间】:2018-07-21 07:22:42
【问题描述】:
我有两个文件,file1 是一个包含数百行和 12 列的 csv,file2 是一个包含数百个值的列表。
比较 file1, col(0) 中的每个值与文件 2 中的每个值,然后如果与 file2 中的任何值匹配则删除 file1 行的最简单方法是什么?
我尝试使用此代码进行匹配部分,但出现语法错误,我认为是因为 python 不允许两个并发阅读器:
initialAvail = open('py_all1.csv')
Reader1 = csv.reader(initialAvail)
data_list1 = list(csv.reader(initialAvail))
IpodPLexcl = open('ipod_py.csv', 'a')
Reader2 = csv.reader(IpodPLexcl)
data_list2 = list(csv.reader(IpodPLexcl))
for i in range(1, len(data_list1)):
Reader1item = int(data_list1[i][0])
for j in range(1, len(data_list2)):
Reader2item = int(data_list2[i][0])
if Reader1item == Reader2item:
compareMatch = True
print(compareMatch)
我是否必须做一个字典(因为第二个文件只是一个列表,而不是具有多个列的 csv)?
【问题讨论】:
-
分解问题: 1. 读取内存中的文件。 2. 应用规则。 3.如果存在更改,则覆盖原始文件。
-
也许你是对的,因为这些文件比这一步之前的原始文件小。会试试的。
-
离题:我强烈建议您阅读并开始遵循 PEP 8 - Style Guide for Python Code 命名准则,尤其是 variable names。
-
看看 pandas 库以在 python 中操作表。几个小时,您将在未来节省很多时间。