python根据文件名列表筛选满足条件的文件
根据文件名列表筛选满足条件的文件:输入:1)含有文件名列表的文件(Excel格式,如.xls格式);如文件名列表中有name=2,name=3等2)一个文件夹含有多个文件,即包含需要筛选的文件。需要在文件中查找文件名满足name=2,name=3的两个文件,并提取出来放在其他文件夹中。代码:import osimport numpy as npimport pandas as pdimport s
·
根据文件名列表筛选满足条件的文件:
输入:
1)含有文件名列表的文件(Excel格式,如.xls格式);
如文件名列表中有name=2,name=3等
2)一个文件夹含有多个文件,即包含需要筛选的文件。
需要在文件中查找文件名满足name=2,name=3的两个文件,并提取出来放在其他文件夹中。
代码:
import os
import numpy as np
import pandas as pd
import shutil
file_path=r'./data'
filename_path=r'./name.xls'
filelist=os.listdir(file_path)
file_name=pd.read_excel(filename_path)
for file in filelist:
print(file)
for file in filelist:
file_row=file_name.shape[0]
olddir=os.path.join(file_path,file)
for i in range(file_row):
if str(file_name['name'][i]) in file:
F=r"./data_filter"
newdir=os.path.join(F,file)
shutil.copy(olddir,newdir)
else:
continue
print('done!')
更新20220701:之前代码使用in ,不能准确找到文件,应该用==
import os
import numpy as np
import pandas as pd
import shutil
file_path=r'path1'
df=pd.read_excel(r'./1.xlsx' )
save_path=r"./test"
for file in os.listdir(file_path) :
file_row=df.shape[0] #FID
olddir=os.path.join(file_path,file)
for i in range(file_row):
if str(df['FID'][i]) == file.split('_')[4]:
newdir=os.path.join(save_path,file)
shutil.copy(olddir,newdir)
else:
continue
print('done!')
参考资料:
https://www.cnblogs.com/lizitingxue/p/12607636.html
更多推荐
已为社区贡献13条内容
所有评论(0)