我正在尝试删除多个文件。 我正在使用这个脚本,但由于某种原因它只删除前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*
这很好,但是我没有所有的文件。但是当我这样做时,脚本不会删除所有脚本。
答案 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...
这样,如果在其中一个早期文件中抛出错误,它就不会使程序短路。