gpt4 book ai didi

Python克服Windows 255路径+文件名限制并归档目录

转载 作者:行者123 更新时间:2023-11-28 16:48:32 25 4
gpt4 key购买 nike

我将使用 Python 备份位于 Windows 7 计算机中的目录。我需要尽可能地压缩它。我还没有决定采用哪种方式进行压缩。

主要问题是目录内部包含数百个文件/目录,因此在总共 255 个字符的路径+文件名之后我看不到内部。此目录结构由第 3 方软件创建。

为了快速测试,我为文件夹生成编写了以下内容(模拟);

    start = time.time()
end = time.time() - start
root_dir = 'C:\test'
os.chdir("C:\test")
iterate = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
while (end<1):
end = time.time() - start
os.system("mkdir " + str(iterate))
os.chdir(root_dir + "\\" + str(iterate))
root_dir = os.getcwd()

这方面的结果;

    The filename or extension is too long.
Traceback (most recent call last):
File "folder_generate.py", line 21, in <module>
os.chdir(root_dir + "\\" + str(iterate))
WindowsError: [Error 2] The system cannot find the file specified: 'c:\\Python27
\\ABCDEFGHIJKLMNOPQRSTUVWXYZ\\ABCDEFGHIJKLMNOPQRSTUVWXYZ\\ABCDEFGHIJKLMNOPQRSTUV
WXYZ\\ABCDEFGHIJKLMNOPQRSTUVWXYZ\\ABCDEFGHIJKLMNOPQRSTUVWXYZ\\ABCDEFGHIJKLMNOPQR
STUVWXYZ\\ABCDEFGHIJKLMNOPQRSTUVWXYZ\\ABCDEFGHIJKLMNOPQRSTUVWXYZ\\ABCDEFGHIJKLMN
OPQRSTUVWXYZ'

正如这里另一个问题中指出的,但没有明确回答。

我得到了遍历目录内容的快速测试代码;

    fileList = []
fileSize = 0
folderCount = 0
rootdir = "c:\\test"

for root, subFolders, files in os.walk(rootdir):
folderCount += len(subFolders)
for file in files:
f = os.path.join(root,file)
fileSize = fileSize + os.path.getsize(f)
fileList.append(f)

print("Total Size is {0} bytes".format(fileSize))
print("Total Files ", len(fileList))
print("Total Folders", folderCount)

结果在;

     Total Size is 0 bytes
('Total Files ', 0)
('Total Folders', 9)

不管test文件夹里有多少个文件夹。有趣的是我可以通过资源管理器无缝浏览和创建 9.folder 之后的新文件夹。

我不太喜欢 wind0z,因此如果有经验的用户可以帮助我解决这个问题,我将不胜感激。

只是存档一个很长的目录。

最佳答案

如果这是主要问题,可以使用 subst 来克服限制。

看看这个:

如何在 Python 中进行 unicode(它讨论了 255 限制)- http://docs.python.org/release/3.1.5/howto/unicode.html

http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx - 注意 Unicode 部分...它解释了 Windows API 的 Unicode 版本有更高的限制 - 以及如何启用它。

再看看这个: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/subst.mspx?mfr=true

看看这个讨论 - http://forums.v3.co.uk/showthread.php?t=223343

除此之外,如果工作是您必须完成的,而不是为了您自己的纯粹学习和娱乐,我可以告诉您,备份您需要的内容的解决方案远比您创建自己的解决方案好得多从头开始拥有。

关于Python克服Windows 255路径+文件名限制并归档目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10956257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com