如何解决检查文件列表中的文件是否存在
我的本地目录中的文件夹和子文件夹中有照片。除此之外,我有一个包含这些照片的名称和路径的数据框。我想交叉检查 (1) df 中是否存在路径/名称而照片不存在,以及 (2) 照片是否存在且路径/名称不存在' t 存在于 df
这是我到目前为止所做的:
(1) 路径/名称存在于df中而照片不存在
missing_general_images = []
for index,row in bq_df.iterrows():
path_download = os.path.join('/home/jupyter/Downloads/multimedia',row['form_id'],row['general_image_name'])
if os.path.exists(path_download):
pass
else:
missing_general_images.append(row)
missing_general_images_df = pd.DataFrame(missing_general_images)
missing_general_images_df.to_csv (r'/home/jupyter/missing_general_images.csv',index = False,header=True)
(2)照片是否存在且df中不存在路径/名称
rootdir = '/home/jupyter/Downloads/multimedia'
missing_table_values = []
for subdir,dirs,files in os.walk(rootdir):
if dirs==[567196,493841]:
continue
else:
for file in files:
for index,row in bq_df.iterrows():
if file == row['image_name']:
continue
else:
missing_table_values.append(file)
missing_table_values_df = pd.DataFrame(missing_table_values)
missing_table_values_df.to_csv (r'/home/jupyter/missing_table_values.csv',header=True)
问题是代码的第二部分,因为从数据框中创建缺失值列表需要数年时间。我猜是因为它必须遍历每个文件夹、子文件夹和文件,并且大约有 40.000 个文件(cca 20 giga)。
您是否推荐任何更快的方法,或者我如何使用当前代码加快进程?非常感谢!
编辑:
我列出了文件夹、子文件夹和照片的名称,并将其与数据框名称/路径相交。
rootdir = '/home/jupyter/Downloads/multimedia'
list_of_photos = []
for path,subdirs,files in os.walk(rootdir):
for name in files:
list_of_photos.append(os.path.join(path,name))
missing_table_values = []
for name in list_of_photos:
if bq_df['image_path'].isin(list_of_photos) is False:
missing_table_values.append(name)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。