os.listdir() 将字符添加到文件名的开头?

os.listdir() adds characters to the beginning of file name?

我快速 google 浏览了一下,但找不到任何东西。我正在使用 os 使用以下代码获取当前工作目录中所有文件名的列表:

path = os.getcwd()
files = os.listdir(path)

文件列表 returns 很好,但最后一个元素有一个额外的“~$”,它不在实际文件名中。例如:

files
['File1.xlsx', 'File2.xlsx', '~$File3.xlsx']

当我遍历这些文件以尝试导入它们时,这会导致问题,因为我收到以下错误:

[Errno 2] No such file or directory: 'C:\Users\$File3.xlsx'

如果有人知道为什么会发生这种情况以及我如何fix/prevent,那就太好了!

只是想我会回答,以防其他人遇到这个问题。

与os无关。发生这种情况是因为我在拉取文件名列表时在 Excel 中打开了 File3。我发现打开 microsoft 文档会创建一个临时 'lock' 文件,用“~$”表示(这就是它在崩溃时如何重新打开未保存的数据等) .

我从 here 中找到以下内容:

The files you are describing are so-called owner files (sometimes referred to as "lock" files). An owner file is created when you work with a document ... and it should be deleted when you save your document and exit.

在 Microsoft 文件中也有关于此的 SO 问题,可以找到