如何在Python中使用以数字开头的文件路径?附报错示例
解决Python中含数字开头路径的IOError问题
你遇到的这个IOError: [Errno 22] invalid mode ('w') or filename错误,核心问题是字符串里的反斜杠被Python当成转义字符解析了。看错误信息里的路径:'C:\SampleFile\...\x01.Grid\x081.Introduction_en.srt',原本的\01被解析成了ASCII控制字符(十六进制0x01),\08也被当成了无效的八进制转义序列,完全偏离了你实际要访问的01.Grid和0101.Introduction.mp4路径。
下面给你三种靠谱的解决办法,任选其一就行:
用原始字符串(Raw Strings):在路径字符串前面加个
r,告诉Python"别解析这里的转义字符,原样保留所有内容"。这是最简洁的方式:target_path = r"C:\SampleFile\Learnnowonline Bootstrap 3.1 Base CSS_git.ir\Learnnowonline Bootstrap 3.1 Base CSS_git.ir\01.Grid\0101.Introduction.mp4" # 比如打开视频文件的示例 with open(target_path, "rb") as video_file: # 这里可以做读取视频的操作 pass替换成双反斜杠:把路径里的每个
\换成\\,因为双反斜杠在Python字符串里会被解析成单个普通反斜杠:target_path = "C:\\SampleFile\\Learnnowonline Bootstrap 3.1 Base CSS_git.ir\\Learnnowonline Bootstrap 3.1 Base CSS_git.ir\\01.Grid\\0101.Introduction.mp4"改用正斜杠作为分隔符:Python对路径的正斜杠兼容性很好,不管Windows还是Linux/macOS都能识别,这样完全不用管转义问题:
target_path = "C:/SampleFile/Learnnowonline Bootstrap 3.1 Base CSS_git.ir/Learnnowonline Bootstrap 3.1 Base CSS_git.ir/01.Grid/0101.Introduction.mp4"
要是你要写入.srt字幕文件,记得把打开模式设为"w"(如果是UTF-8编码最好加上encoding="utf-8"),比如:
srt_path = r"C:\SampleFile\Learnnowonline Bootstrap 3.1 Base CSS_git.ir\Learnnowonline Bootstrap 3.1 Base CSS_git.ir\01.Grid\0101.Introduction_en.srt" with open(srt_path, "w", encoding="utf-8") as srt_file: srt_file.write("你的字幕内容")
内容的提问来源于stack exchange,提问作者hamed Tiger
相关产品推荐
相关产品推荐

