Python打开本地文件时反斜杠将文件名首字符转为x0转义序列的报错问题
问题产生原因
Python 字符串中反斜杠 \ 是转义引导符,会和紧随其后的字符组成转义序列。你代码中路径里的 \v 恰好是垂直制表符的转义表示,对应的十六进制ASCII值为 0x0b,因此路径 D:\python1\venom.txt 被Python解析时,\v 会被替换为 \x0b,最终实际传入open函数的路径变为 D:\\python1\x0benom.txt,和你期望的实际文件路径完全不符,因此触发非法参数报错。
解决方法
- 方法1:使用原始字符串
在路径字符串的引号前添加字符r,标识该字符串为原始字符串,Python不会解析其中的转义序列:
file = open(r"D:\python1\venom.txt")
- 方法2:使用正斜杠作为路径分隔符
Python在Windows环境下也支持正斜杠/作为路径分隔符,不会触发转义逻辑:
file = open("D:/python1/venom.txt")
- 方法3:对反斜杠进行转义
用两个连续的反斜杠\\表示一个普通的反斜杠字符:
file = open("D:\\python1\\venom.txt")
- 方法4:使用路径处理工具自动拼接路径
可以使用Python内置的路径处理模块,自动适配系统分隔符,从根源避免手动写分隔符出错:- 使用
os.path模块:
import os file_path = os.path.join("D:", "python1", "venom.txt") file = open(file_path)- 使用
pathlib模块(Python3.4及以上版本支持,面向对象式路径处理):
from pathlib import Path file_path = Path("D:") / "python1" / "venom.txt" file = open(file_path) - 使用
内容的提问来源于stack exchange,提问作者Fady Esam
相关产品推荐
相关产品推荐

