如何获取 py 文件的路径?



我想在我的python代码中使用其他文件夹的数据。文件结构如下:

-- Data
   -- data.txt
-- Src
   -- app.py

所以我把代码写成blow:

fileName = os.path.abspath('../Data/data.txt')

代码是正确的,只在Src文件夹中运行。但是当我运行py代码时,在我的主文件夹或其他文件夹中。这是错误的。我知道为什么,因为这是路径问题。所以,我的问题是,如何让它正确?有人能帮帮我吗?

我猜有一个更好的方法,但这是相当直接的

import os
# get the directory of the executed python file
src_path = os.path.dirname(os.path.abspath(__file__))
# get the directory of data relative to the src_path
data_path = os.path.join(src_path, "../data/data.txt")
# profit ?
print open(data_path).read()

例子
/tmp/src > python app.py
Hello World!
/tmp > python src/app.py
Hello World!

您需要指定数据文件的路径,您可以硬编码它或将其作为带有默认值的参数传递(更好的解决方案)

import sys
if __name__ == '__main__':
    fileName = sys.argv[1] if len(sys.argv==2) else '/the/default/path'
''' your code''''   

当向Python脚本传递参数时,第一个参数是脚本本身的名称

如果您需要在脚本中获取当前目录路径:

import os
current_path = os.getcwd()

最新更新