忽略“临时”文件?

时间:2019-04-26 13:25:54

标签: python

我已经有一段时间运行脚本了,没有任何问题,但是最近在目录中有一个临时文件的问题。

有问题的文件在Windows PC上以“〜$”开头,因此该文件的脚本错误,因为它不是正确的DOCX文件。该文件未打开,是在将网络驱动器传输到外部硬盘驱动器后发生的。检查目标驱动器(带有隐藏文件等)也不显示此文件。

我尝试了快速修复:

for (dirpath,dirnames,filenames) in os.walk('.'):
    for filename in filenames:
        if filename.endswith('.docx'):
            filesList.append(os.path.join(dirpath,filename))    

for file in filesList:
    if file.startswith('~$'):
        pass
        else:
                <rest of script>

但是脚本似乎忽略了此操作,然后再次出错,因为文件不是“有效”文件。

有人知道这为什么不起作用,还是一种快速的解决方案让它忽略任何类似的文件?我会尝试一个if是否存在,但是从技术上说该文件确实存在,所以这也不起作用。

很抱歉,如果它有点愚蠢,但是我对A.为什么它在那里和B.如何在它周围编码感到困惑。

1 个答案:

答案 0 :(得分:2)

在第二个代码块中,变量file包含整个文件路径,而不仅仅是文件名。

相反,跳过第一个块中的“不良”文件,而不是附加到列表中:

for (dirpath,dirnames,filenames) in os.walk('.'):
    for filename in filenames:
        if filename.endswith('.docx'):
            if not filename.startswith('~$'):
                filesList.append(os.path.join(dirpath,filename))    

另一种选择是在第二个代码块中检查os.path.basename(file)