我有一个父目录,我的python代码在一个子目录中,但是我的输入文件在另一个子目录中。如何找到输入文件的相对路径?这就是我现在所拥有的,但是它给了我这个错误-FileNotFoundError: [Errno 2] No such file or directory:
dirc = os.path.dirname("..")
filename = os.path.join(dirc,"/input/input_file.txt")
f = open(filename, "r")
答案 0 :(得分:0)
这个问题似乎在问如何在python中获取Unix文件的绝对路径。它说的是相对路径,但是根据代码,相对路径是已知的,../input/input_file.txt
。问题中所说明的任务并不需要那么做,仅需使用根据前提已知的相对路径即可轻松完成任务(请参见下面的注释)。但是,由于主要问题是要找到绝对路径并使用它来解决问题,所以我将回答这个问题。
您的代码中有两个问题。
os.path.dirname()
不会返回您要查找的绝对路径。相反,它返回给定路径的目录部分,在这种情况下,该部分为空字符串(因为您提供的路径仅包含一个文件(..
计为文件)。您将要使用{{ 1}}。os.path.abspath()
忽略了最后一条绝对路径之前的所有元素。由于os.path.join()
具有绝对路径的形式(从"/input/input_file.txt"
开始),因此它将忽略/
。您将需要提供此功能的相对路径而不会引起斜线。一起:
dirc
注意,您不需要绝对路径。通过执行以下操作,您将达到相同的效果:
import os
dirc = os.path.abspath("..")
filename = os.path.join(dirc, "input/input_file.txt")
f = open(filename, "r")
print([line for line in f])
f.close()