如何使用 python 访问父目录中的文件?
How to access file in parent directory using python?
我正在尝试访问父目录中的文本文件,
例如:python 脚本在 codeSrc 中,文本文件在 mainFolder.
中
脚本路径:
G:\mainFolder\codeSrc\fun.py
所需文件路径:
G:\mainFolder\foo.txt
我目前在 python 2.7x,
中使用此语法
import os
filename = os.path.dirname(os.getcwd())+"\foo.txt"
虽然这很好用,但是有更好的(更漂亮的 :P)方法吗?
要获取当前脚本父目录中文件的路径,您可以执行以下操作:
import os
file_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'foo.txt')
你可以试试这个
import environ
environ.Path() - 1 + 'foo.txt'
虽然您的示例有效,但它可能不是最好的,我的也可能不是。无论如何,os.path.dirname()
可能适用于最后一部分已经是文件名的字符串。它使用 os.path.split()
,如果路径以斜线结尾,它会提供一个空字符串。所以这可能会出错。此外,由于您已经在使用 os.path
,我也将使用它来连接路径,这甚至变得与平台无关。我会写
os.path.join( os.getcwd(), '..', 'foo.txt' )
...关于代码的可读性,这里(在 post 使用 environ 模块时)很明显你提升了一个级别。
要获取父目录,以下代码将对您有所帮助:
import os
os.path.abspath(os.path.join('..', os.getcwd()))
我正在尝试访问父目录中的文本文件,
例如:python 脚本在 codeSrc 中,文本文件在 mainFolder.
中脚本路径:
G:\mainFolder\codeSrc\fun.py
所需文件路径:
G:\mainFolder\foo.txt
我目前在 python 2.7x,
中使用此语法import os
filename = os.path.dirname(os.getcwd())+"\foo.txt"
虽然这很好用,但是有更好的(更漂亮的 :P)方法吗?
要获取当前脚本父目录中文件的路径,您可以执行以下操作:
import os
file_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'foo.txt')
你可以试试这个
import environ
environ.Path() - 1 + 'foo.txt'
虽然您的示例有效,但它可能不是最好的,我的也可能不是。无论如何,os.path.dirname()
可能适用于最后一部分已经是文件名的字符串。它使用 os.path.split()
,如果路径以斜线结尾,它会提供一个空字符串。所以这可能会出错。此外,由于您已经在使用 os.path
,我也将使用它来连接路径,这甚至变得与平台无关。我会写
os.path.join( os.getcwd(), '..', 'foo.txt' )
...关于代码的可读性,这里(在 post 使用 environ 模块时)很明显你提升了一个级别。
要获取父目录,以下代码将对您有所帮助:
import os
os.path.abspath(os.path.join('..', os.getcwd()))