python文件路径怎么写:分系统三种写法
python文件路径怎么写,分为绝对路径、相对路径两类;Windows系统可采用双反斜杠、r原始字符串、正斜杠三种写法,Linux与Mac只能用正斜杠;跨平台代码优先使用os.path.join或者pathlib模块拼接路径,避免系统分隔符带来的报错;当你直接复制Windows资源管理器路径时,\U、\t这类字符会触发字符串转义异常,这是高频报错场景,同时r原始字符串不能以单个反斜杠收尾,否则会把引号转义造成语法错误。
python文件路径怎么写:Windows系统写法
第一种写法,双反斜杠转义,每一个目录分隔符都要写成\\,用来抵消字符串转义规则,示例代码:open('C:\\Users\\test\\data.txt'),这种写法可以正常以反斜杠结尾,不会触发引号转义问题。
第二种写法,字符串前加r原始字符串前缀,直接粘贴路径,不需要额外转义,示例代码:open(r'C:\Users\test\data.txt');该写法存在边界限制,路径末尾不能单独写\,r'C:\test\'会直接报错,末尾需要写文件名,或者改用拼接方式处理文件夹路径。
第三种写法,直接使用正斜杠/,Python对Windows系统做了兼容,不需要修改分隔符,示例代码:open('C:/Users/test/data.txt'),这是粘贴路径后修改工作量最小的写法。
python文件路径怎么写:相对路径规则
相对路径以程序运行的当前工作目录作为基准,和脚本文件存放目录不一定一致,这是最容易踩坑的边界条件。
| 路径符号 | 含义 | 代码示例 |
|---|---|---|
| ./ | 当前运行目录,可省略 | open('./data.txt') |
| ../ | 向上跳转一级父目录 | open('../data.txt') |
| ../../ | 向上跳转两级目录 | open('../../data.txt') |
你可以用os.getcwd()打印当前工作目录,用来排查相对路径找不到文件的问题;想要以脚本文件位置作为基准,需要读取__file__变量,再拼接路径。
python文件路径怎么写:跨平台稳定方案
调用Python官方内置os.path.join函数拼接路径片段,代码会自动适配Windows与Linux的分隔符,不会出现转义问题,示例:
importos;path=os.path.join(r'C:\test','data.txt')
Python3.6及以上版本支持pathlib模块,Path对象会自动处理分隔符,可读性更高,示例:
frompathlibimportPath;path=Path('C:/test')/'data.txt'
python文件路径怎么写:常见报错规避
直接粘贴Windows路径出现unicodeescape报错,根源是路径里的\U被识别为Unicode转义字符,优先改用正斜杠或者r原始字符串就能解决该问题。
r原始字符串仅不能以单个反斜杠收尾,只要末尾带上文件名,就不会出现语法错误,文件夹路径可以用os.path.join补全末尾分隔符,规避这个限制。
相对路径失效大多是因为命令行运行目录和脚本目录不一致,此时把相对路径转为绝对路径,使用os.path.abspath()函数即可定位文件。
