为什么使用 os.walk() 时目录中会出现一个奇怪的文件?
Why Does a Strange File Shows Up in Directory When Using os.walk()?
项目写在 Pycharm Windows 10.
我编写了一个从目录中抓取 .docx 文件并搜索信息的程序。在文件名列表的末尾,我得到了这个文件:“~$640188.docx”
我遇到此文件时出现此错误:
raise BadZipfile, "File is not a zip file"
zipfile.BadZipfile: File is not a zip file
当我尝试将文件“~$640188.docx”放入 docx2text 方法过程时发生此错误
text = docx2txt.process(r'C:\path\to\folder\~0188.docx')
据我所知,该文件不存在于我正在搜索的目录中,也不存在于我的计算机上的任何位置。另一个 st运行ge 部分是昨天我没有收到这个错误。
我知道有时目录中有 "hidden" 文件,我 运行 到我的 mac 之前的文件中(特别是 '.DS_Store'),但这是一个.docx 文件。
我目前有一个丑陋的解决方案,它说 "don't run the code if you run into '~0188.docx'"。我担心的是,当我将 11000 个文件转储到目录中时,这将成为一个更大的问题。
这个文件来自哪里?
下面是代码供参考
import docx2txt
import os
check_files = []
for dir, subdir, files in os.walk(r'C:\path\to\folder'):
for file in files:
check_files.append(file)
for file in check_files:
print "file: {0}".format(file)
text = docx2txt.process(r'C:\path\to\folder\{0}'.format(file))
以 ~$
开头的隐藏 .docx
文件只是 Word 在主动打开和编辑文件时创建的临时文件 – 相应父文件名的前两个字符替换为~$
。一旦您保存并关闭文档,它们通常会被删除,但有时它们会在您退出后仍然存在。由于它们被设计为对适当 .docx
文件的临时补充,因此它们不需要始终具有正确的 zip 包结构。
你最好跳过这些。检查文件名是否以 '~'
开头应该就足够了。只需添加以下过滤:
check_files2 = [fl for fl in check_files if fl[0] != '~']
for file in check_files2:
项目写在 Pycharm Windows 10.
我编写了一个从目录中抓取 .docx 文件并搜索信息的程序。在文件名列表的末尾,我得到了这个文件:“~$640188.docx”
我遇到此文件时出现此错误:
raise BadZipfile, "File is not a zip file"
zipfile.BadZipfile: File is not a zip file
当我尝试将文件“~$640188.docx”放入 docx2text 方法过程时发生此错误
text = docx2txt.process(r'C:\path\to\folder\~0188.docx')
据我所知,该文件不存在于我正在搜索的目录中,也不存在于我的计算机上的任何位置。另一个 st运行ge 部分是昨天我没有收到这个错误。
我知道有时目录中有 "hidden" 文件,我 运行 到我的 mac 之前的文件中(特别是 '.DS_Store'),但这是一个.docx 文件。
我目前有一个丑陋的解决方案,它说 "don't run the code if you run into '~0188.docx'"。我担心的是,当我将 11000 个文件转储到目录中时,这将成为一个更大的问题。
这个文件来自哪里?
下面是代码供参考
import docx2txt
import os
check_files = []
for dir, subdir, files in os.walk(r'C:\path\to\folder'):
for file in files:
check_files.append(file)
for file in check_files:
print "file: {0}".format(file)
text = docx2txt.process(r'C:\path\to\folder\{0}'.format(file))
以 ~$
开头的隐藏 .docx
文件只是 Word 在主动打开和编辑文件时创建的临时文件 – 相应父文件名的前两个字符替换为~$
。一旦您保存并关闭文档,它们通常会被删除,但有时它们会在您退出后仍然存在。由于它们被设计为对适当 .docx
文件的临时补充,因此它们不需要始终具有正确的 zip 包结构。
你最好跳过这些。检查文件名是否以 '~'
开头应该就足够了。只需添加以下过滤:
check_files2 = [fl for fl in check_files if fl[0] != '~']
for file in check_files2: