5

我正在尝试访问父目录中的文本文件,

例如: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)的方法来做到这一点?

4

4 回答 4

9

虽然您的示例有效,但它可能不是最好的,我的也可能不是。无论如何,os.path.dirname()可能意味着最后一部分已经是文件名的字符串。它使用os.path.split(),如果路径以斜杠结尾,则它提供一个空字符串。所以这可能会出错。此外,正如您已经在使用的那样os.path,我也会使用它来加入路径,然后它甚至变得独立于平台。我会写

os.path.join( os.getcwd(), '..', 'foo.txt' )

...关于代码的可读性,在这里(如使用 environ 模块的帖子中)很明显,您立即升级了一个级别。

于 2017-11-15T08:40:53.087 回答
1

要获取父目录,以下代码将对您有所帮助:

import os
os.path.abspath(os.path.join('..', os.getcwd()))
于 2020-05-16T15:12:05.420 回答
1

要获取当前脚本父目录中文件的路径,您可以执行以下操作:

import os
file_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'foo.txt')
于 2017-11-15T07:00:31.497 回答
1

你可以试试这个

import environ
environ.Path() - 1 + 'foo.txt'
于 2017-11-15T07:03:35.323 回答