参考博客:http://www.cnblogs.com/wind-wang/p/5822192.html
更多路径读取请参照上述博客(使用Python 2.x版本),这里只挑出个人认为最直接、常用的部分,并在win 10环境的Python 3.6.5版本上进行测试。部分测试结果与参考博客中有出入,可能是版本问题。
重点:本博客关注获取的路径字符串中是 正斜线“/” 还是 反斜线“\” 的原因是,Python的字符串中的“\”一般会被默认为转义字符,所以路径中使用“\”是需要用双反斜线“\”表示,相应路径在Windows系统下无法直接使用;但“/”没有上述问题。
以下假设当前文件“test.py”的实际路径为“E:/python_code/test.py”。
使用下面代码可以分别输出文件路径和文件所在文件夹的路径。
file_path = os.path.abspath(__file__) # 'E:\\python_code\\test.py'
folder_path1 = os.getcwd() # 'E:\\python_code'
folder_path2 = os.getcwd().replace('\\','/') # 'E:/python_code'
print(file_path)
print(folder_path1)
print(folder_path2)
输出结果:
E:\python_code\test.py
E:\python_code
E:/python_code
直接利用os.path.abspath(__file__)
或os.getcwd()
得到的路径均是用反斜线\
连接的,若需要用正斜线/
连接,可以使用folder_path2中的方法,在结尾加上.replace('\\','/')
,这里的\\
中的第一个反斜线\
表示转义。
另外,如果需要sys模块且不想导入os模块,可以使用下面的代码获得文件路径。
file_path3 = sys.argv[0] # 'E:/python_code'
print(file_path3)
输出结果:
E:/python_code/test.py
(这里的输出结果使用的就是正斜线/
,也是参考博客中所有列出方法中唯一使用正斜线/
连接路径的方法)
注意:sys模块并没有找到可以不经处理直接得到文件所在文件夹路径的方法。