我正在尝试访问父目录中的文本文件
例如: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)方法吗?
答案 0 :(得分:3)
虽然你的例子有效,但它可能不是最好的,也许不是我的。无论如何,os.path.dirname()
可能意味着最后一部分已经是文件名的字符串。它使用os.path.split()
,如果路径以斜杠结尾,则提供空字符串。所以这可能会出错。此外,由于您已经在使用os.path
,我还会使用它来加入路径,然后这些路径甚至可以与平台无关。我写了
os.path.join( os.getcwd(), '..', 'foo.txt' )
...关于代码的可读性,这里(如在使用environ模块的帖子中)很明显,你可以升级到一级。
答案 1 :(得分:1)
你可以试试这个
/**
* Append data to any pre-existing files; close after each append.
*/
APPEND,
/**
* Append data to any pre-existing files; do not flush/close after
* appending.
* @since 4.3
*/
APPEND_NO_FLUSH,
/**
* Raise an exception in case the file to be written already exists.
*/
FAIL,
/**
* If the file already exists, do nothing.
*/
IGNORE,
/**
* If the file already exists, replace it.
*/
REPLACE;
答案 2 :(得分:1)
要获取父目录,以下代码将为您提供帮助:
import os
os.path.abspath(os.path.join('..', os.getcwd()))
答案 3 :(得分:0)
要获取当前脚本的父目录中的文件路径,您可以执行以下操作:
import os
file_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'foo.txt')