OSX文件名中的特殊字符? (Python os.rename)

时间:2009-12-13 13:00:38

标签: python macos path character-encoding filesystems

我正在尝试使用python脚本在OSX上自动重命名某些文件。但我无法使用正斜杠等特殊字符:

oldname = "/test"
newname = "/test(1\/10)"
os.rename(oldname, newname)

我想我确实遇到了编码问题。但是使用re.escape或使用UTF-8 unicode编码的不同尝试对我来说并不成功。你有提示吗?

谢谢! 马可

2 个答案:

答案 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。