我有一些其他人在 Windows 中编写的 Python 脚本。这些脚本使用双反斜杠作为路径分隔符,但在 Ubuntu 中运行时,它们因此无法工作。我可以将所有 \ 更改为 /,脚本可以工作,但脚本太多,将每个 \ 更改为 / 需要花费很多精力
所以我的问题是:是否可以在 Ubuntu 中或仅在 Bash 中添加 \ 作为路径分隔符,这样我就不必修改这些脚本?
示例代码:
# Append Common directory to the Python search path
sys.path.append('..\\..\\..' + os.sep + 'Common')
答案1
在 Linux 中,文件名可以包含任何字符除外/
(因为它是路径分隔符)和 NUL 字节(字符串终止符,\0
)。这意味着\
是文件名中的有效字符,以及换行符、制表符、终端转义序列、不可打印字符……所以不,您不能暂时用作\
路径分隔符。
Windows 不那么宽容,文件名中不允许使用的字符集更多,并且/
是不允许使用的字符之一。出于这个原因,python 还会考虑/
Windows 上的路径分隔符,因此将其更改\\
为/
应该可以让脚本在 Windows 和 Ubuntu 上都能正常工作。也就是说,在 python 中连接路径的正确方法是使用 os.path.join 函数。
我建议仔细检查脚本并手动修复所有不可移植的代码。
答案2
我无法回答你的问题,但在所有脚本中将 \ 更改为 / 非常容易,如下所示:
find <root_of_scripts> -name "*.py" -exec sed -i 's/\\\\/\//g' {} \;
(请先在文件副本上尝试一下!)