“在Python中处理路径斜杠问题”的版本间的差异
来自YTYZX有图有真相的百科
(创建页面,内容为“ 微软Windows系统在文件夹名称间使用反斜杠(\),其他操作系统均使用正斜杠(/),在Python中可以使用以下方法处理。 用Pyt...”) |
|||
第1行: | 第1行: | ||
微软Windows系统在文件夹名称间使用反斜杠(\),其他操作系统均使用正斜杠(/),在Python中可以使用以下方法处理。 | 微软Windows系统在文件夹名称间使用反斜杠(\),其他操作系统均使用正斜杠(/),在Python中可以使用以下方法处理。 | ||
+ | |||
用Python读取文件时,'\'是Python的转义字符,如果路径中存在'\t'或者'\r'这样的特殊字符,'\'就无法起到目录跳转的作用,从而报错。解决办法如下: | 用Python读取文件时,'\'是Python的转义字符,如果路径中存在'\t'或者'\r'这样的特殊字符,'\'就无法起到目录跳转的作用,从而报错。解决办法如下: | ||
+ | |||
例如要读取C盘temp目录下的ytyzx.txt这个文本文件。 | 例如要读取C盘temp目录下的ytyzx.txt这个文本文件。 | ||
path0 = c:\temp\ytyzx.txt 将报错,因为Python认为c:后面的\t是制表符。 | path0 = c:\temp\ytyzx.txt 将报错,因为Python认为c:后面的\t是制表符。 | ||
− | + | 报错信息类似下面:handle = open(OSError: [Errno 22] Invalid argument: 'c:\temp\\ytyzx.txt' | |
+ | |||
正确写法如下: | 正确写法如下: | ||
path = r"C:\temp\ytyzx.txt" # 在前面加上字母r,则视为通知Python,后面的内容为原始字符串,不对“\t”,“\r”等进行字符串转义。 | path = r"C:\temp\ytyzx.txt" # 在前面加上字母r,则视为通知Python,后面的内容为原始字符串,不对“\t”,“\r”等进行字符串转义。 | ||
第9行: | 第12行: | ||
path2 = "c:\\temp\ytyzx.txt" # 在temp前面再加一个反斜杠(\),即用第一个斜杠取消第二个斜杠的转义功能。 | path2 = "c:\\temp\ytyzx.txt" # 在temp前面再加一个反斜杠(\),即用第一个斜杠取消第二个斜杠的转义功能。 | ||
path3 = "c:/temp/ytyzx.txt" # 在反斜杠(\)替换为正斜杠(/)。 | path3 = "c:/temp/ytyzx.txt" # 在反斜杠(\)替换为正斜杠(/)。 | ||
− | |||
− |
2022年1月22日 (六) 15:45的最新版本
微软Windows系统在文件夹名称间使用反斜杠(\),其他操作系统均使用正斜杠(/),在Python中可以使用以下方法处理。
用Python读取文件时,'\'是Python的转义字符,如果路径中存在'\t'或者'\r'这样的特殊字符,'\'就无法起到目录跳转的作用,从而报错。解决办法如下:
例如要读取C盘temp目录下的ytyzx.txt这个文本文件。 path0 = c:\temp\ytyzx.txt 将报错,因为Python认为c:后面的\t是制表符。 报错信息类似下面:handle = open(OSError: [Errno 22] Invalid argument: 'c:\temp\\ytyzx.txt'
正确写法如下: path = r"C:\temp\ytyzx.txt" # 在前面加上字母r,则视为通知Python,后面的内容为原始字符串,不对“\t”,“\r”等进行字符串转义。 path1 = r"c:\temp\ytyzx.txt" # Windows系统大小写不敏感。 path2 = "c:\\temp\ytyzx.txt" # 在temp前面再加一个反斜杠(\),即用第一个斜杠取消第二个斜杠的转义功能。 path3 = "c:/temp/ytyzx.txt" # 在反斜杠(\)替换为正斜杠(/)。