Python - 删除多个文件

时间:2016-03-02 08:20:51

标签: python python-2.7 delete-file

我正在尝试删除多个文件。 我正在使用这个脚本,但由于某种原因它只删除前4个而不是其余的。如果我把它分成两个脚本就行了......我的问题是什么?

def fileDeleter():
    try:
        os.remove('apps.csv')
        os.remove('columns.txt')
        os.remove('columns_boot.txt')
        os.remove('output.txt')
        os.remove('routes.csv')
        os.remove('route_apps.txt')
        os.remove('route_domain.txt')
        os.remove('route_hosts.txt')
        os.remove('start.txt')
        os.remove('space.txt')
    except OSError:
        pass 

我的观点是静默处理它们,如果文件激发然后删除 - 如果没有通过。用户不需要看到文件不存在的错误。当我添加错误时,我得到的唯一一个是

WindowsError: [Error 2] The system cannot find the file specified: *filename*

这很好,但是我没有所有的文件。但是当我这样做时,脚本不会删除所有脚本。

2 个答案:

答案 0 :(得分:0)

您的主要问题似乎是您无声地处理异常,因此您无法了解其他问题。您可能有更多问题,但其中一个是最明显的问题。

答案 1 :(得分:0)

一旦发现错误,程序将继续。您需要做的是尝试一次删除每个文件并检查是否有错误。

fileList = ['apps.csv', 'columns.txt', 'columns_boot.txt', 'output.txt', 'routes.csv', 'route_apps.txt', 'route_domain.txt', 'route_hosts.txt', 'start.txt', 'space.txt']
for file in fileList:
    try:
        os.remove(file)
    except OSError as e:
        print("File '{}' could not be removed.".format(file))
        # pass # => you really should do more than pass here...

这样,如果在其中一个早期文件中抛出错误,它就不会使程序短路。