根据第二列的值选择 csv 中的项目

  • 本文关键字:选择 csv 项目 二列 python
  • 更新时间 :
  • 英文 :


我正在尝试根据我的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:UsersAdministratorDesktopOJTscanner\samples_extracted'
dir_dst = 'C:UsersAdministratorDesktopOJTscanner\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

只需要一个if

for rowDict in csv.reader(f, delimiter=','):
if "Undetected" in rowDict[2]:
valid_files.add(rowDict[0])

最新更新