格式化文件路径

2023-12-27

我是 Python 新手,所以我的做法可能完全错误,但我在获取和更改文件目录时遇到问题。我的脚本接受可以位于任何目录中的多个文件名。在我的脚本中,我需要 python 更改到文件的目录,然后执行一些操作。但是,我在更改目录时遇到问题。

这是我到目前为止所尝试过的:

path=os.path.split(<file path>)
os.chdir(path[0])
<Do things to file specified by path[1]>

我获取文件路径的方法是从资源管理器拖动到命令行。这输入的路径名称类似于"C:\foo\bar\file_name.txt"。当我在解释器中运行第一行时,我退出了('C:\\foo\bar','file_name.txt')。问题是,由于某种原因,最后一个反斜杠不会自动转义,所以当我运行os.chdir(path[0])行我收到错误。

我的问题是为什么最后一个反斜杠没有像其他反斜杠一样自动转义?如何手动转义最后一个反斜杠?有没有更好的方法来获取文件的目录并更改为它?


最后一个反斜杠不会自动转义,因为当后面的字符不与反斜杠形成转义序列时,Python 仅对常规字符串中的反斜杠进行转义。事实上,在你的例子中,你不会得到'C:\\foo\bar' from 'C:\foo\bar',你会得到'C:\x0coo\x08ar'.

您想要做的是将反斜杠替换为正斜杠,或者为了使拖放操作更简单,只需在路径前面加上r因此它是一个原始字符串并且无法识别转义序列。

>>> os.path.split(r"C:\foo\bar\file_name.txt")
('C:\\foo\\bar','file_name.txt')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

格式化文件路径 的相关文章

随机推荐