当前位置: 首页 > 面试题库 >

Windows上的Python中的长路径

秦新立
2023-03-14
问题内容

在Windows下运行的Python中编程时出现问题。我需要使用长度超过256个或whatsathelimit字符的文件路径。现在,我已经基本阅读了两种解决方案:

  1. 使用kernel32.dll中的GetShortPathName并以这种方式访问​​文件。

很好,但是我不能使用它,因为我需要以某种方式使用路径

shutil.rmtree(short_path)

其中short_path是一个非常短的路径(类似D:\tools\Eclipse),而长路径则出现在目录本身中(该死的Eclipse插件)。

  1. 前置"\\\\?\\"路径

我还没有以任何方式使这项工作成功。尝试以这种方式进行操作总是会导致错误WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect: <path here>

所以我的问题是:如何使第二个选项起作用?我强调,我需要使用与选项#1中的示例相同的方式使用它。

要么

还有其他办法吗?

编辑:我需要在Python 2.7中工作的解决方案

EDIT2:Windows中损坏的Python长文件名支持问题确实给出了“魔术前缀”的答案,我说我在这个问题中知道这一点。我不知道的事情是如何使用它。我已经尝试将其添加到路径中,但是正如我上面所写的那样,它只是失败了。


问题答案:

好吧,似乎像往常一样,在认真询问某人二十分钟后,我已经找到了困扰我一周的答案。

因此,我发现我需要确保正确完成两件事:

  1. 该路径只能包含反斜杠,不能包含正斜杠。
  2. 如果要执行类似列出目录的操作,则需要在路径末尾加反斜杠,否则Python将/*.*在其后附加一个正斜杠,这很不好。

希望至少有人会觉得这有用。



 类似资料:
  • 问题内容: 代表Windows目录的最佳方法是什么?我一直在尝试修改脚本,但是它永远无法正常工作,因为我似乎无法正确获得目录,我想是因为它充当转义符? 问题答案: 183 你可以始终使用: 这适用于linux和Windows。其他可能性是 如果你对某些名称有疑问,也可以尝试使用原始字符串文字: 但是,最佳实践是使用始终为你的操作系统选择正确配置的模块功能: 从python 3.4开始,你还可以使用

  • 问题内容: 我一直在尝试在Windows 7上将Python路径添加到命令行中,但是无论我尝试哪种方法,似乎都没有任何效果。我使用了该set命令,尝试通过“编辑环境”变量提示符等添加它。 此外,如果我在命令行上运行set命令,它将列出此内容 但是它仍然无法识别Python命令。 阅读文档和其他各种资源似乎无济于事。 编辑:为了进一步说明,我在编辑环境提示中将Python可执行文件的路径附加到PAT

  • 问题内容: 我正在尝试学习python,正在制作一个将输出脚本的程序。我想使用os.path.join,但是很困惑。根据文档,如果我说: 我懂了。根据文档,这是正常的,对吗? 但是,当我使用copytree命令时,Python将以所需的方式输出它,例如: 这是我得到的错误代码: 如果我用换行,则会得到相同的错误。 如果不能以这种方式使用它,那么我对其目的感到困惑。 根据Stack Overflow

  • 1.2. Windows 上的 Python 在 Windows 上, 安装 Python 有两种选择。 ActiveState 制作了一个 Windows 上的 Python 安装程序称为 ActivePython, 它包含了一个完整的 Python 发布; 一个适用于 Python 编程的 IDE 附加了一些 Python 的 Windows 扩展, 提供了全部的访问 Windows APIs

  • 问题内容: 与* nix机器相比,Windows上的Python通常会慢吗?Python似乎在Mac OS X机器上火起来,而在Window的Vista机器上 似乎 运行慢。这些机器的处理能力相似,而Vista机器则具有1GB以上的内存。 我在Mercurial中特别注意到了这一点,但我认为这可能只是Mercurial在Windows上打包的方式。 问题答案: 我想对此进行跟进,发现了一些我认为是

  • 问题内容: 如何在Windows上正确安装virtualenv? 我从这里下载virtualenv1.9.1并尝试使用以下命令安装它: 但它没有出现在MyPythonPath / Scripts中 我尝试以相同的方式安装virutalenvwrapper- win 并正确安装。但是我不能使用它,因为我没有virtualenv python.exe:无法打开文件“ MyPythonPath \ Sc