从文件名以'df'开头的目录中删除所有文件[重复]

问题描述 投票:-1回答:1
我想从文件名以'df'开头的目录中删除所有文件。我曾经在下面的代码中执行相同的操作,但是我收到以下错误消息:No such file or directory: 'df2.csv'尽管print语句确实显示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'

python python-3.x
1个回答
3
投票

UPDATE:

这是因为您只是将文件名及其扩展名添加到列表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,以创建绝对路径。

© www.soinside.com 2019 - 2024. All rights reserved.