【问题标题】:shutil copy2 password protection mecanism?shutil copy2密码保护机制?
【发布时间】:2021-09-08 10:20:40
【问题描述】:

在windows下用python3和shutil copy2复制一些文件时遇到一个奇怪的问题(通过PyCharm启动我的脚本)

显示问题的文件在我试图将它们重命名为的名称中都包含“密码”或“密码”,并且似乎 copy2 会自动剪切密码之后的内容而不是复制文件?
所有其他文件都可以正常工作

我的代码:

def copy(rom, name, system):
  if not os.path.exists(os.path.join(distFolder, system)):
     os.mkdir(os.path.join(distFolder, system))
  shutil.copy2(os.path.join(newRomset, system, rom), os.path.join(distFolder, system, name + '.zip'))

在这个例子中我们有:
只读存储器:donquijote2.zip
姓名:Don Quijote de la Mancha - Parte II (Spanish) (48K) [Password: EL INGENIOSO HIDALGO]

但在 subFolder 中,它会创建一个 Don Quijote de la Mancha - Parte II (Spanish) (48K) [Password 文件,没有扩展名且大小为零

同样适用于:
只读存储器:avespacial2.zip
姓名:Aventura Espacial, La - En los Dominios del Cerebelo (Spanish) [PASSWORD: CANES VENATICI]

我再次得到一个名为 Aventura Espacial, La - En los Dominios del Cerebelo (Spanish) [PASSWORD 的文件,没有扩展名和大小为 0

Python 中是否为此嵌入了保护机制?
我什至停用了我的防病毒软件,但没有机会

也考虑过太长的文件名/路径,但是名称较长且没有密码的较长文件会被很好地复制...

值得一提的是,执行脚本时完全没有出现错误

【问题讨论】:

  • 无法复制(在 Linux 下)。

标签: python python-3.x shutil


【解决方案1】:

我发现了问题,实际上与任何类型的密码保护无关!

原来是Password: 中的: 导致了问题,因为它是文件名的非法字符。

- 替换它可以解决问题。

很奇怪,我没有从 python 中得到任何错误,我很确定在我之前编写的一些脚本中,在那个确切的情况下结束脚本有一个明确的错误

【讨论】:

  • 我现在也在 Windows 下尝试过:确实,相当奇怪的行为。我试图在文档和源代码中找到有关它的内容,但没有成功。
猜你喜欢
  • 2011-06-11
  • 1970-01-01
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
  • 2013-09-05
  • 2013-04-26
  • 2016-01-26
  • 2014-06-15
相关资源
最近更新 更多