Python如何读取相对路径文件

2023-03-02 20:03:32 路径 文件 读取

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']

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

相关文章