相关疑难解决方法(0)

查找当前目录和文件的目录

在Python中,我可以使用哪些命令来查找:

  1. 当前目录(当我运行Python脚本时我在终端中的位置),以及
  2. 我正在执行的文件在哪里?

python directory

2007
推荐指数
13
解决办法
273万
查看次数

如何检索模块的路径?

我想检测模块是否已更改.现在,使用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查找脚本的目录?

请考虑以下Python代码:

import os
print os.getcwd()
Run Code Online (Sandbox Code Playgroud)

os.getcwd()用来获取脚本文件的目录位置.当我从命令行运行脚本时它给了我正确的路径,而当我从Django视图中的代码运行的脚本运行它时,它会打印出来/.

如何从Django视图运行的脚本中获取脚本的路径?

更新:
总结到目前为止的答案 - os.getcwd()并且os.path.abspath()都给出当前工作目录,该目录可能是也可能不是脚本所在的目录.在我的网站主机设置中__file__只提供没有路径的文件名.

在Python中没有任何方法(总是)能够接收脚本所在的路径吗?

python directory django-views getcwd

451
推荐指数
8
解决办法
40万
查看次数

从另一个脚本调用脚本的最佳方法是什么?

我有一个名为test1.py的脚本,它不在模块中.它只有在脚本本身运行时才能执行的代码.没有函数,类,方法等.我有另一个作为服务运行的脚本.我想从作为服务运行的脚本中调用test1.py.

例如:

文件test1.py

print "I am a test"
print "see! I do nothing productive."
Run Code Online (Sandbox Code Playgroud)

文件service.py

# Lots of stuff here
test1.py # do whatever is in test1.py
Run Code Online (Sandbox Code Playgroud)

我知道一种方法是打开文件,读取内容,并基本上评估它.我假设有一个更好的方法来做到这一点.或者至少我希望如此.

python

277
推荐指数
9
解决办法
42万
查看次数

Python中的相对路径

我正在构建一个简单的帮助脚本,用于将代码库中的几个模板文件复制到当前目录.但是,我没有存储模板的目录的绝对路径.我确实有一个来自脚本的相对路径,但是当我调用脚本时,它将其视为相对于当前工作目录的路径.有没有办法指定这个相对url来自脚本的位置?

python path relative-path

204
推荐指数
9
解决办法
34万
查看次数

如何知道/更改Python shell中的当前目录?

我在Windows 7上使用Python 3.2.当我打开Python shell时,我如何知道当前目录是什么以及如何将其更改为我的模块所在的另一个目录?

python windows python-3.x python-3.2

204
推荐指数
5
解决办法
40万
查看次数

如何在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万
查看次数

指定popen的工作目录

有没有办法在Python中指定命令的运行目录subprocess.Popen()

例如:

Popen('c:\mytool\tool.exe', workingdir='d:\test\local')
Run Code Online (Sandbox Code Playgroud)

我的Python脚本位于 C:\programs\python

是否可以C:\mytool\tool.exe在目录中运行D:\test\local

如何设置子流程的工作目录?

python subprocess popen

174
推荐指数
2
解决办法
14万
查看次数

python:将脚本工作目录更改为脚本自己的目录

我每分钟从crontab运行一个python shell:

* * * * * /home/udi/foo/bar.py
Run Code Online (Sandbox Code Playgroud)

/home/udi/foo有一些必要的子目录,比如/home/udi/foo/log/home/udi/foo/config,/home/udi/foo/bar.py指的是.

问题是crontab从不同的工作目录运行脚本,因此尝试打开./log/bar.log失败.

有没有一种很好的方法告诉脚本将工作目录更改为脚本自己的目录?我想要一个适用于任何脚本位置的解决方案,而不是明确地告诉脚本它在哪里.

编辑:

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

是最紧凑的优雅解决方案.感谢您的回答和解释!

python working-directory

153
推荐指数
4
解决办法
15万
查看次数