我想从文件名以“df”开头的目录中删除所有文件。我曾经在下面的代码中做同样的事情,但我收到以下错误,说No such file or directory: 'df2.csv'
虽然打印语句确实显示了 df2.csv
filelist = [ f for f in os.listdir("/a/b/") if f.startswith("df") ]
for f in filelist:
print(f)
os.remove(f)
df2.csv
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'df2.csv'
更新:
这是因为您只是将文件名及其扩展名添加到列表中filelist
。
在这种特殊情况下,os.remove()
要求您传递一个绝对路径,因为文件路径与脚本路径无关。
您需要将filelist
列表理解更新为以下内容才能使其工作:
root = r'path to your directory'
filelist = [ os.path.join(root, f) for f in os.listdir(root) if f.startswith("df") ]
os.path.join(root, f)
将加入根路径和 filename.ext 创建一个绝对路径。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句