我正在尝试根据csv将文件复制到另一个文件夹。我的csv包含我的文件夹中的文件列表。但是如何根据第二列对其进行过滤?例如,如果第二列包含“未检测到”,则仅复制此文件。
这是我的代码,但我不知道如何过滤文件。这会将我的所有文件复制到另一个文件夹。
import os
import shutil
import csv
valid_files = set() # empty set
with open('sha1_vsdt.csv', 'r') as f:
for rowDict in csv.reader(f, delimiter=','):
valid_files |= {rowDict[0] and "Undetected" in rowDict [2] } # add file name to set
print(rowDict) # if desired
dir_src = 'C:\Users\Administrator\Desktop\OJT\scanner\\samples_extracted'
dir_dst = 'C:\Users\Administrator\Desktop\OJT\scanner\\transfer'
for file in os.listdir(dir_src):
if file in valid_files:
src_file = os.path.join(dir_src, file)
dst_file = os.path.join(dir_dst, file)
shutil.copy(src_file, dst_file)
我如何更正此行?
valid_files |= {rowDict[0] and "Undetected" in rowDict [2] } # add file name to set
我的csv的示例条目
0191a23ee122bdb0c69008971e365ec530bf03f5,aaa,MIME 6010-0
02b809d4edee752d9286677ea30e8a76114aa324,bbb,Microsoft RTF 6008-0
0349e0101d8458b6d05860fbee2b4a6d7fa2038d,ccc,Adobe Portable Document Format(PDF) 6015-0
035a7afca8b72cf1c05f6062814836ee31091559,ddd,Adobe Portable Document Format(PDF) 6015-0
042065bec5a655f3daec1442addf5acb8f1aa824,eee,Undetected
04939e040d9e85f84d2e2eb28343d94a50ed46ac,fff,Undetected
答案 0 :(得分:2)
if
应该是所有必需的内容:
for rowDict in csv.reader(f, delimiter=','):
if "Undetected" in rowDict[2]:
valid_files.add(rowDict[0])