Python如何读取相对路径文件
作者:寸草心2130
这篇文章主要介绍了Python如何读取相对路径文件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
Python读取相对路径文件
例如下图目录结构:
第一种情况
1)xxx.py想要打开a.txt,使用相对路径,有如下两种方式:
思路:
xxx.py想打开的是b_file下的文件,XXX.py和b_file都在文件目录之下,两者是同级目录,因此操作就是在当前目录向下搜索,因此就可以很容易理解下面的意思了
特别提示:… \是错误的,打开的是上级目录
with open(r"b_file\a.txt","r") as file: with open(r".\b_file\a.txtx", "r") as file:
2)ab.py尝试打开b_file下的a.txt,应该怎么写:
思路,首先要定位到上级目录,在上级目录下找到b_file下的.TXT
with open(r"..\b_file\aa.txt", "r") as f: print(f.read())
最后:如果想要使用绝对路径也很简单:
xxx.py打开b_file下的a.txt中,我们可以使用OS库,获取到xxx.py的当前路径,再然后通过组合的方式电子杂志到绝对路径。
当然还可以分成两部,使用os.path.join(路径,PATH1)进行两个路径的自动合并,去获取到完整的路径,也是可行的。
import os path = os.getcwd()#获取当前路径 with open(path+".\b_file\a.txt", "r") as file: import os path = os.getcwd() a_path = os.path.join(path, "b_file/a.txt") print(a_path)
从下级目录向上级目录合并,也是可以使用加入方法实现的
os.path.abspath(os.path.join(path, ".."))
python读取文件路径失败的原因
今天用tensorflow读取csv文件,一直读取失败,后来发现是因为文件名的路径问题
例如:
DATA_FILE = ['F:\vscode\kiwi.csv']
这个时候出错,是因为系统将‘\’解释为了转义字符串,即便是放在当前路径下,只写文件名还是会失败。
不清楚为什么vscode软件无法识别当前路径。总之使用正确的绝对路径就行了。
为了避免出现转义字符导致文件地址解析出错,我们可以使用双斜杠,或者反方向的斜杠。
DATA_FILE = ['F:\\vscode\\kiwi.csv'] DATA_FILE = ['F:/vscode/kiwi.csv']
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。