玩蛇网提供最新Python编程技术信息以及Python资源下载!

想得到.py向上一层文件路径,python源码应该怎么写

假设有个文件的位置是 ...A/B/main.py,main.py 是需求被执行的代码。
如何获得文件夹 A 的完整路径呢?

获得 main,py 上上层的路径

import os
print os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir))

解释下:

__file__:当前文件路径
os.path.dirname(file): 某个文件所在的目录路径
os.path.join(a, b, c,....): 路径构造 a/b/c
os.path.abspath(path): 将path从相对路径转成绝对路径
os.pardir: Linux下相当于"../"

很丑的方式, 用__file__在打包成windows的EXE时会出问题:

import os.path
os.path.abspath(os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])), '..'))
import re, sys
match = re.match('(.*)/(.*)', sys.path[0])
print match.group(1)

获取 python 文件位置的模块有 os os.path sys. 题主的问题可以如下:

# -*- coding: utf-8 -*-
import sys, os
pwd = sys.path[0]    # 获取当前执行脚本的位置
print os.path.abspath(os.path.join(pwd, os.pardir, os.pardir))

一般获取文件位置方法有

区别:

个人觉得 sys.path 比较稳妥

import inspect
print inspect.stack()[-1][1]

参考:http://qa.helplib.com/127252

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd19687.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月24日 - 20时21分13秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules