我有这个脚本处理包含Windows文件路径的行。但是该脚本在Linux上运行。有没有办法在linux上运行时更改os库来执行Windows文件路径处理?
我在想这样的事情:
import os
os.pathsep = '\\'
(由于os.pathsep是不起作用的;出于某种原因)
我的剧本:
for line in INPUT.splitlines():
package_path,step_name = line.strip().split('>')
file_name = os.path.basename(package_path)
name = os.path.splitext(file_name)[0]
print template % (name,file_name,package_path)
答案 0 :(得分:7)
查看ntpath模块
在Linux上,我做了:
>> import ntpath
>> ntpath.split("c:\windows\i\love\you.txt")
('c:\\windows\\i\\love', 'you.txt')
>> ntpath.splitext("c:\windows\i\love\you.txt")
('c:\\windows\\i\\love\\you', '.txt')
>> ntpath.basename("c:\windows\i\love\you.txt")
'you.txt'
答案 1 :(得分:3)
尝试使用os.sep = '\\'
。 os.pathsep是用于在os上分隔搜索路径(PATH环境变量)的分隔符。
答案 2 :(得分:1)
os.pathsep是用于PATH环境变量的分隔符。你正在寻找os.sep。
虽然我一般会建议不要在这样的模块中更改数据,但它可能适合您的需求。或者,您可以自己实现基本名称,例如package_path.split('\\')[-1]