我有一个大约500个字符串的列表,我想检查一个包含25000行的CSV文件。我现在所拥有的似乎是陷入了循环。我基本上想跳过包含字符串列表中任何字符串的行,然后提取其他数据。在
stringList = [] #strings look like "AAA", "AAB", "AAC", etc.
with open('BadStrings.csv', 'r')as csvfile:
filereader = csv.reader(csvfile, delimiter=',')
for row in filereader:
stringToExclude = row[0]
stringList.append(stringToExclude)
with open('OtherData.csv', 'r')as csvfile:
filereader = csv.reader(csvfile, delimiter=',')
next(filereader, None) #Skip header row
for row in filereader:
for s in stringList:
if s not in row:
data1 = row[1]
编辑:不是无限循环,但循环耗时太长。在
根据Niels的说法,我将更改2循环并遍历行本身并检查当前行条目是否在“bad”列表中:
我也不知道你想用data1做什么,但是当一个项目不在stringList中时,你总是改变对象引用。 可以使用列表将项目添加到带有
data1.append(item)
的列表中你可以试试这个。在
仍然可能不会有很大的性能改进,但至少for循环
for s in stringList:
将在找到s后停止。在相关问题 更多 >
编程相关推荐