Python-有没有办法';os.listdir()';返回错误文件夹名称的胡言乱语?
我有一个用Python编写的简单脚本:Python-有没有办法';os.listdir()';返回错误文件夹名称的胡言乱语?,python,Python,我有一个用Python编写的简单脚本: import os def Path(SourcePath): for Folder in os.listdir(SourcePath): print "TESTING: %s" % Folder Path("\\\\192.168.0.36\\PDFs") 当我运行它时,它会通过局域网上的远程共享进行递归,并且只显示找到的文件夹的名称。此共享主要包含文件夹 问题是,如果文件夹名称的末尾有空格,上面的脚本会列出jibberis
import os
def Path(SourcePath):
for Folder in os.listdir(SourcePath):
print "TESTING: %s" % Folder
Path("\\\\192.168.0.36\\PDFs")
当我运行它时,它会通过局域网上的远程共享进行递归,并且只显示找到的文件夹的名称。此共享主要包含文件夹
问题是,如果文件夹名称的末尾有空格,上面的脚本会列出jibberish
例如,如果我在上述共享中有以下文件夹:
关于如何解决这个问题有什么想法吗?这不是(|)易卜里什语,而是一种语言。它是特定于Windows的,但您可以使用
将其映射回长名称。当CIFS上的文件名包含Windows文件名中非法的字符时,Windows将使用生成的8.3“占位符”
在本例中,之所以发生这种情况,是因为您的“圣诞老人巧克力”文件名以空格结尾。Windows文件名不能以空格结尾,因此它使用占位符使文件可访问
我不认为可以使用GetLongPathName来实现这一点——没有长文件名可以映射到,因为根据定义,这将是一个非法的文件名。如果您有这样的文件名,我不认为有任何方法可以找到它在服务器上的实际位置,而且它对您的好处有限,因为您不能通过该文件名引用它。作为额外的数据点,您的脚本在Linux中使用这些名称的本地文件目录上按预期工作。听起来这是Windows特有的行为。+1。这是Windows文件名限制的问题,与Python无关。