我正在Windows上运行一个python程序,它将os.walk
一个linux文件系统安装在我的窗口上,为QTreeView
创建一个树模型。似乎当文件夹的路径超过260个字符长度时,它将被视为文件而不是目录,因此,os.walk
将停止进入此目录。如何绕过Window的最大路径长度限制?
答案 0 :(得分:1)
Subst是解决这个问题的一种方法。
为路径C:\ User \ Betty \ Really \ Really \ Long \ Path创建虚拟驱动器V,输入:
subst v: C:\User\Betty\Really\Really\Long\Path
答案 1 :(得分:1)
我发现即使路径超过260个字符,QtCore.QDir
模块也能正常工作。所以我编写了自己的os.walk函数版本,类似于以下内容:
import os
from PyQt4 import QtCore
def myWalk(root_path):
dir_info = QtCore.QDir(root_path)
dirs = dir_info.entryList(filters=(QtCore.QDir.Dirs | QtCore.QDir.NoDotAndDotDot))
files = dir_info.entryList(filters=(QtCore.QDir.Files | QtCore.QDir.NoDotAndDotDot))
for i in dirs:
myWalk(os.path.join(root_path, i))