Python – 有没有办法绕过’os.listdir()’为坏文件夹名称返回乱
我有一个用
Python编写的简单脚本:
import os def Path(SourcePath): for Folder in os.listdir(SourcePath): print "TESTING: %s" % Folder Path("\192.168.0.36PDFs") 当我运行它时,它通过局域网上的远程共享进行递归,只是显示找到的文件夹的名称.此共享主要包含文件夹. 问题是,如果文件夹名称的名称末尾有空格,则上面的脚本会列出乱码. 例如,如果我在上面的共享中有以下文件夹: >“6008386 HH – Walkers Crisps” 请注意,“6008157 CPP – 圣诞老人巧克力”最后有一个空格.这是上面脚本的列表: >“测试:6008386 HH – Walkers Crisps” 如何在递归远程目录时避免这种情况?如果仅由’os.listdir()’正确返回,我可以修复文件夹名称. 关于如何解决这个问题的任何想法? 解决方法
当CIFS上的文件名包含在Windows文件名中非法的字符时,Windows使用生成的8.3“占位符”.
在这种情况下,它正在发生,因为你的“圣诞老人巧克力”文件名以空格结束. Windows文件名不能以空格结尾,因此它使用占位符来使文件可访问. 我不认为你可以使用GetLongPathName – 没有长的文件名要映射到,因为根据定义,这将是一个非法的文件名.如果你有这样的文件名,我认为没有办法找出它在服务器上的实际内容,并且它会对你有用,因为你不能通过那个文件名来引用它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |