相关疑难解决方法(0)

如何检索模块的路径?

我想检测模块是否已更改.现在,使用inotify很简单,您只需要知道要从中获取通知的目录.

如何在python中检索模块的路径?

python module inotify

697
推荐指数
17
解决办法
55万
查看次数

如何获取当前正在执行的文件的路径和名称?

我有脚本调用其他脚本文件,但我需要获取当前在该进程中运行的文件的文件路径.

例如,假设我有三个文件.使用execfile:

  • script_1.py电话script_2.py.
  • 反过来,script_2.py打电话script_3.py.

我怎样才能获得的文件名和路径script_3.py,从内部代码script_3.py,而无需从传递这些信息作为参数script_2.py

(执行os.getcwd()返回原始起始脚本的文件路径而不是当前文件的.)

python scripting file

462
推荐指数
16
解决办法
51万
查看次数

如何在Python中获取当前执行文件的路径?

这似乎是一个新手问题,但事实并非如此.一些常见的方法并不适用于所有情况:

sys.argv中[0]

这意味着使用path = os.path.abspath(os.path.dirname(sys.argv[0])),但如果您从另一个目录中的另一个Python脚本运行,这不起作用,这可能发生在现实生活中.

__文件__

这意味着使用path = os.path.abspath(os.path.dirname(__file__)),但我发现这不起作用:

  • py2exe没有__file__属性,但有一个解决方法
  • 从IDLE运行时execute()没有__file__属性
  • OS X 10.6我得到的地方 NameError: global name '__file__' is not defined

回答不完整的相关问题:

我正在寻找一个通用的解决方案,一个适用于所有上述用例的解决方案.

更新

这是测试用例的结果:

输出python a.py(在Windows上)

a.py: __file__= a.py
a.py: os.getcwd()= C:\zzz

b.py: sys.argv[0]= a.py
b.py: __file__= a.py
b.py: os.getcwd()= C:\zzz
Run Code Online (Sandbox Code Playgroud)

a.py

#! /usr/bin/env python
import os, sys

print "a.py: sys.argv[0]=", sys.argv[0]
print "a.py: __file__=", __file__
print …
Run Code Online (Sandbox Code Playgroud)

python directory path

183
推荐指数
8
解决办法
12万
查看次数

如何获取 Jupyter Notebook 的路径?

是否有获取笔记本路径的功能?

我在谷歌上搜索了一些关于这个主题但没有找到一个简单的方法来做到这一点......我想获得笔记本的路径,以便我可以在其他地方使用它。这样我就可以在与笔记本相同的路径中保存/使用文件,而不必担心它被保存在哪里。

现在我的解决方案是将以下代码放在最上面,但显然这至少会带来必须手动执行单元格的问题,而且如果工作目录发生更改,这将停止工作。

import os
current_path = os.getcwd()
Run Code Online (Sandbox Code Playgroud)

python jupyter jupyter-notebook

24
推荐指数
3
解决办法
3万
查看次数

如何获取执行冻结脚本的路径

如果您运行的是冷冻python脚本从一个目录(使用py2exe冻结)和驱动从那里脚本存在不同的,什么是确定执行脚本的路径的最佳方式?

我尝试过的解决方案很少

inspect.getfile(inspect.currentframe())
Run Code Online (Sandbox Code Playgroud)

问题:不返回完整路径.它只返回脚本名称.

os.path.abspath( __file__ )
Run Code Online (Sandbox Code Playgroud)

问题:在Windows上不起作用

os.path.dirname(sys.argv[0])
Run Code Online (Sandbox Code Playgroud)

问题:返回空字符串.

os.path.abspath(inspect.getsourcefile(way3))
Run Code Online (Sandbox Code Playgroud)

如果驱动器与pwd不同,则无法工作

os.path.dirname(os.path.realpath(sys.argv[0]))
Run Code Online (Sandbox Code Playgroud)

如果驱动器与pwd不同,则无法工作

这是一个最小的不工作的例子

D:\>path
PATH=c:\Python27\;c:\Users\abhibhat\Desktop\ToBeRemoved\spam\dist\;c:\gnuwin32\bin

D:\>cat c:\Users\abhibhat\Desktop\ToBeRemoved\spam\eggs.py
import os, inspect, sys
def way1():
    return os.path.dirname(sys.argv[0])

def way2():
    return inspect.getfile(inspect.currentframe())

def way3():
    return os.path.dirname(os.path.realpath(sys.argv[0]))

def way4():
    try:
        return os.path.abspath( __file__ )
    except NameError:
        return "Not Found"
def way5():
    return os.path.abspath(inspect.getsourcefile(way3))

if __name__ == '__main__':
    print "Path to this script is",way1()
    print "Path to this script is",way2()
    print "Path to this script is",way3()
    print "Path to this script is",way4()
    print …
Run Code Online (Sandbox Code Playgroud)

python windows path argv

9
推荐指数
1
解决办法
5322
查看次数

如何获取自己的文件名

可能重复:
python,脚本路径

有什么办法可以打印文件和当前位置的自我文件名.

python file

4
推荐指数
1
解决办法
6953
查看次数

我怎样才能获得python脚本的路径?

我试图获取我的python脚本的路径.

我知道'sys.argv [0]给了我python脚本的路径和名称.

我怎么才能走这条路呢?

我试过了:

 print sys.argv[0]
    path = sys.argv[0].split("/")
    scriptpath = "".join(path[0:-1])
Run Code Online (Sandbox Code Playgroud)

但它不会添加回路径分隔符.

python

3
推荐指数
1
解决办法
2987
查看次数

如何根据正在执行的脚本的相对路径加载配置文件?

堆栈溢出,

下面是我的脚本的前几行:

from ConfigParser import SafeConfigParser
from docopt import docopt
import core as scrappy

ARGS = docopt(__doc__, version=scrappy.__version__)
if not ARGS['PATH']:
    ARGS['PATH'] = './'

# load config file
CFG = SafeConfigParser()
if not CFG.read(ARGS['--cfg']):  # call to CFG.read also loads file if it exists
    raise IOError('Configuration file not found.')
Run Code Online (Sandbox Code Playgroud)

我尝试读取的配置文件与上述脚本位于同一目录中。默认情况下,docopt 将此文件的路径设置为./file.conf(我已经测试过,file.conf结果相同)。

脚本的最后一行总是被调用,提示找不到文件。我通过打印 的输出来确认这一点os.getcwd,该输出显示脚本的执行目录是终端指向的目录。

是什么赋予了?

我可以做什么来指向配置文件?

python path relative-path

3
推荐指数
1
解决办法
4662
查看次数