内容简介:在windows下编程,我们经常会遇到路径相关的问题,下面解释下原因,并给出python的解决方案。windows访问文件默认用可以用代码验证:
在windows下编程,我们经常会遇到路径相关的问题,下面解释下原因,并给出 python 的解决方案。
为什么windows的路径在编程时经常会出问题?
windows访问文件默认用 \
做为路径的分隔符,而 \
可以作为转义字符。例如, \t
, \a
表示一个字符,此时 \
是转义字符,而 \m
表示两个字符。
可以用代码验证:
>>>len('\t')
>>>1
>>>len('\a')
>>>1
>>>len('\a')
>>>2
好,了解这个后,我们看下windows路径,如果路径中后面刚好是能转义字符,那代码就会识别为转义字符,这就导致路径解析错误。例如"c:\test\t.txt",刚好有'\t',这就被解析为转义字符,路径就会错误。而如果路径为"c:\money\m.xls",这样的话路径就不会解析错误。
可是,我们总不能为此去修改文件名吧,当然有别的办法,下面介绍下解决方案。
如何解决python在windows下的路径问题?
-
【推荐】不要使用
\,直接使用/,而且/在windows和 linux 下都适用。
'C:/mydir'
-
用双斜线
\\
'C:\\mydir'
- 使用raw string的标记r
r'C:\mydir'
-
【推荐】使用
os.path模块函数,可以根据操作系统选择正确的路径符
os.path.join('C:', dir1, dir2, myfile)
- 使用最新的 pathlib模块
pathlib.Path(mydir, myfile)
或者
pathlib.Path(mydir) / myfile
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Effective Modern C++ 简体中文版
Scott Meyers / 高博 / 中国电力出版社 / 2018-4-23 / 99
想要彻底理解C++11和C++14,不可止步于熟悉它们引入的语言特性(例如,auto型别推导、移动语义、lambda表达式以及并发支持)。挑战在于高效地运用这些特性——从而使你的软件具备正确性、高效率、可维护性和可移植性。这正是这本实用的图书意欲达成的定位。它描述的正是使用C++11和C++14——现代C++来撰写真正卓越的软件之道。 涵盖以下主题: 大括号初始化、noexcept规格......一起来看看 《Effective Modern C++ 简体中文版》 这本书的介绍吧!
RGB转16进制工具
RGB HEX 互转工具
随机密码生成器
多种字符组合密码