处理多个目录时出错

2024-03-28 12:02:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从多个目录中删除文件。而:

   os.remove("C:/WWWWWWW.csv")
    os.remove("C:/AAAAAAA.CSV”)

如果没有找到其中一个目录,代码就会中断。你知道吗

下面的方法也适用。但是,如果它找不到WWWWWWW,那么它就不会删除其他目录.csv文件

try:
    os.remove("C:/WWWWWWW.csv")
    os.remove("C:/AAAAAAA.CSV”)
 except OSError:
    pass

我有大约18+个文件,所以我只是想知道是否有一个更干净的方法比必须:

try:
    os.remove("C:/WWWWWWW.csv")
 except OSError:
    pass
 try:
    os.remove("C:/WWWWWWW.csv")
 except OSError:
    pass

以下内容往往不涉及这一问题:

try:
    colors = ["C:/d.csv", "C:/a.csv"]
    for color in colors:
        os.remove(color)
except OSError:
    pass

Tags: 文件csv方法目录ospassremovecolor
2条回答

这是一种可能的解决方案,@OTTO也提到了这一点

del_list = ['file1.csv', 'file2.csv', 'file3.csv'];

for fd in del_list:
    try:
        os.remove(os.path.join(my_dir, fd))
    except OSError:
        pass

您首先需要创建一个文件名列表,您要在要清理的任何目录my_dir中删除这些文件名。循环遍历该列表,并使用错误处理来防止程序在特定目录中不存在文件时退出。您可以将此程序转换为一个函数,并为要从中删除文件的每个目录调用它,或添加另一个通过目标目录列表的外部循环。你知道吗

import glob, os, os.path
mydir = 'set directory here'
# Deletes all csv files in the directory specified, ignoring case
for fil in glob.glob(os.path.join(mydir, "*.[Cc][Ss][Vv]")):
    os.remove(fil)

相关问题 更多 >