我从XML元素中读取了以下字符串,并将其分配给名为filename的变量。 我不知道如何更清楚地说明filename =以下字符串,而不会让某人认为我有一个字符串文字。
\\server\data\uploads\0224.1307.Varallo.mov
当我尝试将其传递给
时os.path.basename(filename)
我得到以下
\\server\\data\\uploads\x124.1307.Varallo.mov
我尝试过filename.replace('\\','\\\\'),但这也不起作用。 os.path.basename(filename)然后返回以下内容。
\\\\server\\data\\uploads\\0224.1307.Varallo.mov
请注意,\ 0现在没有转换为\ x,但现在它根本不处理字符串。
我可以对我的文件名变量做什么来使这个String处于正确的状态,这样os.path.basename()实际上会给我回基本名称。我在OSX上,所以uncpath的东西不可用。
由于\ 0在基本名称的开头转换为\ x,所有尝试用\\手动替换\的尝试都会失败。
注意:这不是字符串文字,所以r''不起作用。
答案 0 :(得分:2)
我们需要更多信息。变量文件名究竟是什么?要回答,请使用print repr(filename)
并将结果添加到上述问题中。
疯狂猜测
免责声明:这是猜测 - 尝试:
import ntpath
print ntpath.basename(filename)
答案 1 :(得分:1)
世界上所有的贬低都不会改变你做错了的事实。 os.path
用于本机路径。 \\foo\bar\baz
不是OS X路径,它是Windows UNC。 posixpath
无法处理UNC; ntpath
是。