我想在我的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()