gpt4 book ai didi

python 检查文件夹内容是否存在

转载 作者:行者123 更新时间:2023-11-30 22:26:48 24 4
gpt4 key购买 nike

这段代码的目的是:

读取包含文件名列表列的 csv 文件

这是 csv 文件:

https://drive.google.com/open?id=0B5bJvxM9TZkhVGI5dkdLVzAyNTA

然后检查特定文件夹以检查文件是否存在

如果发现文件不在列表中,请将其删除

这是代码:

import pandas as pd
import os.path

data = pd.read_csv('data.csv')
names = data['title']
path = "C:\\Users\\Sayed\\Desktop\\Economic Data"

for file in os.listdir(path):
os.path.exists(file)
print(file)
file = os.path.join(path, file)
fileName = os.path.splitext(file)

if fileName not in names:
print('error')
os.remove(file)

我修改了第一个代码,这是新代码,我没有错误,但只需删除目录中的所有文件

最佳答案

os.chdir 不返回任何内容,因此将结果分配给 path 意味着 pathNone ,这会导致错误。

由于您使用的是 pandas,因此这里有一个使用 pd.Series.isin 加快速度的小技巧。

root = "C:\Users\Sayed\Desktop\Economic Data"
files = os.listdir(root)

for f in data.loc[~data['title'].isin(files), 'title'].tolist():
try:
os.remove(os.path.join(root, f))
except OSError:
pass

根据 EAFP 添加了 try- except 检查(因为我在这里没有进行 os.path.exists 检查)。或者,您可以使用 pd.Series.apply 添加基于存在的过滤器:

m = ~data['title'].isin(files) & data['title'].apply(os.path.exists)

for f in data.loc[m, 'title'].tolist():
os.remove(os.path.join(root, f))

关于python 检查文件夹内容是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47121322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com