删除具有不同目录的文件[不是相同的文件夹,以缩短代码]

时间:2017-11-05 04:17:57

标签: python python-3.x file csv subprocess

我想缩短我的代码。到目前为止我的所有文件都在:

C:\1A.csv
C:\2A.csv
C:\3\3A.csv
C:\4\4A.csv
C:\5\5A.csv
C:\6\6A.csv
C:\7\7A.csv
C:\8\8A.csv
C:\9\9A.csv
C:\10\10A.csv
C:\11\11A.csv
C:\12\12A.csv

我有:

try:
    os.remove("C:\1A.csv")
 except OSError:
    pass
 try:
    os.remove("C:\2A.csv")
 except OSError:
    pass
#etc,,

哪种方法效果很好,但它会创建冗长的代码。

以下内容也很有用:

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

虽然这通常限于一个文件夹。

1 个答案:

答案 0 :(得分:1)

从python3.5 +开始,您可以使用glob并对目录进行递归遍历。假设您要删除所有CSV文件,可以执行以下操作:

root = os.getcwd()
for file in glob.glob('*/**/*.csv'):
    try:
        os.remove(os.path.join(root, file))
    except OSError:
        ...