我正在尝试使用python脚本在OSX上自动重命名某些文件。但我无法使用正斜杠等特殊字符:
oldname = "/test"
newname = "/test(1\/10)"
os.rename(oldname, newname)
我想我确实遇到了编码问题。但是使用re.escape或使用UTF-8 unicode编码的不同尝试对我来说并不成功。你有提示吗?
谢谢! 马可
答案 0 :(得分:2)
大多数文件系统的共同点是它们不允许文件名中的目录分隔符(斜杠)。
也就是说,在Mac OS X中,您可以在finder中使用斜杠显示文件名 ,您可以尝试用:
替换斜杠。
答案 1 :(得分:0)
如果您尝试重命名文件夹'/ test',则需要以root身份运行python,否则您将无权更改root中的内容。此外,新名称中的斜杠将无法正常工作,因为python将尝试查找目录“/ test(1”,因此您必须让目录分隔符运行。此外,python文档中的内容可能会有所帮助。
将文件或目录src重命名为dst。如果dst是目录,则会引发OSError。在Unix上,如果dst存在且是一个文件,如果用户有权限,它将被静默替换。如果src和dst在不同的文件系统上,则某些Unix风格的操作可能会失败。如果成功,重命名将是原子操作(这是POSIX要求)。在Windows上,如果dst已经存在,即使它是文件,也会引发OSError;当dst命名现有文件时,可能无法实现原子重命名。可用性:Unix,Windows。