🐍 Python 在 Windows 环境下的文件路径问题

在 Python 程序中,我们经常需要对文件进行操作。在 Windows 下,文件目录路径使用反斜杠"\"来分隔。然而,在 Python 代码中,反斜杠"\"是转义符,例如"\n"表示换行符、"\t"表示制表符。这样,如果继续使用"\"表示文件路径,就会产生歧义。

❓ 示例问题

例如:

python 复制代码
path = "c:\test.txt"

这个路径表示的是 C 盘根目录下的一个文件,还是表示一个字符串呢?因为"\t"也可以解释为制表符。如果让我们人来判断,这当然是一个很简单的问题。但是机器无法做出正确的判断,只有没有歧义的代码机器才会正确执行。

💡 解决办法

采用下面任何一种书写形式均可:

  1. 使用斜杠"/" (推荐)

    python 复制代码
    path = "c:/test.txt"

    这样就没有歧义了。

  2. 将反斜杠符号转义

    python 复制代码
    path = "c:\\test.txt"

    因为反斜杠是转义符,所以两个"\"表示一个反斜杠符号。

  3. 使用 Python 的 raw string

    python 复制代码
    path = r"c:\test.txt"

    在字符串前面加上字母"r",表示后面是一个原始字符串(raw string)。不过 raw string 主要是为正则表达式设计的,而不是 Windows 路径,所以这种做法尽量少用,可能会出问题。

相关推荐
小灵吖3 分钟前
LangChain4j 的 Low 和 High level API
后端
砍材农夫5 分钟前
强应用-弱引用-虚引用-软引用
后端
毅炼6 分钟前
Java 基础常见问题总结(5)
java·后端
sheyuDemo7 分钟前
关于深度学习的d2l库的安装
人工智能·python·深度学习·机器学习·numpy
去码头整点薯条ing9 分钟前
猿人学第二届第一题【魔改标准算法】
爬虫·python
前路不黑暗@13 分钟前
Java项目:Java脚手架项目的通用组件的封装(七)
java·开发语言·spring boot·后端·学习·spring cloud·maven
喵手16 分钟前
Python爬虫实战:深度索引 - 基于关键词矩阵模拟与语义打捞的语料库构建实战!
爬虫·python·爬虫实战·语料库·零基础python爬虫教学·基于关键词矩阵模拟·语义打捞
可涵不会debug21 分钟前
时序数据库选型指南:Apache IoTDB深度解析与对比
java·后端·struts
啊阿狸不会拉杆33 分钟前
《机器学习导论》第 18 章-增强学习
人工智能·python·学习·算法·机器学习·智能体·增强学习
那我掉的头发算什么34 分钟前
【图书管理系统】基于Spring全家桶的图书管理系统(上)
java·服务器·数据库·spring boot·后端·spring·mybatis