相关疑难解决方法(0)

如何在Python中获取__main__模块的文件名?

假设我有两个模块:

a.py:

import b
print __name__, __file__
Run Code Online (Sandbox Code Playgroud)

b.py:

print __name__, __file__
Run Code Online (Sandbox Code Playgroud)

我运行"a.py"文件.这打印:

b        C:\path\to\code\b.py
__main__ C:\path\to\code\a.py
Run Code Online (Sandbox Code Playgroud)

问题:如何__main__从"b.py"库中获取模块的路径(在本例中为"a.py")?

python python-module

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

Python open()给出IOError:Errno 2没有这样的文件或目录

出于某种原因,我的代码无法打开一个简单的文件:

这是代码:

file1 = open('recentlyUpdated.yaml')
Run Code Online (Sandbox Code Playgroud)

错误是:

IOError: [Errno 2] No such file or directory: 'recentlyUpdated.yaml'
Run Code Online (Sandbox Code Playgroud)
  • 当然,我检查了这是文件的正确名称.
  • 我试过移动文件,给出文件open()的完整路径,似乎没有任何工作.

python file-io file filenotfoundexception file-not-found

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

如何使用python 3获取当前工作目录?

当我在IDLE中运行以下脚本时

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

我输出为

D:\testtool
Run Code Online (Sandbox Code Playgroud)

但是当我从cmd提示符运行时,我得到了

c:\Python33>python D:\testtool\current_dir.py
c:\Python33
Run Code Online (Sandbox Code Playgroud)

我如何获得使用IDLE获得的相同结果?

working-directory file-location python-3.x

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

获取脚本目录名称 - Python

我知道我可以使用它来获取完整的文件路径

os.path.dirname(os.path.realpath(__file__))
Run Code Online (Sandbox Code Playgroud)

但是我只想要文件夹的名称,我的脚本就在.如果我有my_script.py并且它位于

/home/user/test/my_script.py
Run Code Online (Sandbox Code Playgroud)

我想回"测试"我怎么能这样做?

谢谢

python file getcwd python-os

32
推荐指数
2
解决办法
6万
查看次数

python:可执行的zip文件包含数据文件吗?

作为python的新手,我最近才发现通过将__main__.py文件放在文件顶部直接执行.zip文件的能力.这适用于python代码,但是我可以捆绑其他类型的文件并使用我的脚本访问它们吗?如果是这样,怎么样?

我的最终目标是将一些图像文件与python代码捆绑在一个.zip文件中,然后能够在应用程序中使用这些图像而无需将它们提取到磁盘.我还想捆绑版权声明,发行说明等,以便整个应用程序及其数据文件都在单个zip中,可以执行而无需在某处提取.

python

21
推荐指数
3
解决办法
8435
查看次数

python模块的vscode导入错误

我试图从一个目录级别进行python导入.

import sys

sys.path.append('..')
from cn_modules import exception
Run Code Online (Sandbox Code Playgroud)

当我尝试运行构建任务时,我从VSCode收到错误:

ImportError:没有名为cn_modules的模块

相同的代码在终端(python)没有任何错误的情况下工作.
当我尝试从VSCode运行构建任务运行它时,我遇到了问题.
这里有什么问题的任何线索?

安静了一段时间,但无法解决这个问题,任何帮助表示赞赏.


注意:当我使用vscode进行调试时,这也适用.下面是我对launch.json和tasks.json的配置

launch.json

 {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Python Console App",
                "type": "python",
                "request": "launch",
                "stopOnEntry": true,
                "program": "${file}",
                "externalConsole": true,
                "debugOptions": [
                    "WaitOnAbnormalExit",
                    "WaitOnNormalExit"
                ],
                "env": {},
                "envFile": "${workspaceRoot}/.env",
                "console":"integratedTerminal",
                "pythonPath": "${config:python.pythonPath}"
            }
        ]
    }
Run Code Online (Sandbox Code Playgroud)

tasks.json

{
        "version": "0.1.0",
        "command": "/usr/bin/python",
        "isShellCommand": true,
        "args": ["${file}"],
        "showOutput": "always",
        "env": {},
        "envFile": "${workspaceRoot}/.env",
        "pythonPath": "${config:python.pythonPath}"
 }
Run Code Online (Sandbox Code Playgroud)

python-2.7 visual-studio-code vscode-settings vscode-tasks

13
推荐指数
5
解决办法
2万
查看次数

什么是Perl的FindBin的Python等价物?

在Perl中,该FindBin模块用于定位原始脚本的目录.在Python中获取此目录的规范方法是什么?

我见过的一些选项:

  • os.path.dirname(os.path.realpath(sys.argv[0]))
  • os.path.abspath(os.path.dirname(sys.argv[0]))
  • os.path.abspath(os.path.dirname(__file__))

python perl path

8
推荐指数
3
解决办法
2392
查看次数

使用子进程在python脚本中使用输入调用python脚本

我有一个脚本a.py,在执行它时会向用户询问某些查询并以json格式构造输出.使用python子进程,我可以从另一个名为的脚本调用此脚本b.py.一切都按预期工作,除了我无法获得变量的输出?我在Python 3中这样做.

python subprocess python-3.x

6
推荐指数
1
解决办法
7711
查看次数

python - subprocess.Popen().pid返回父脚本的pid

我试图从另一个Python脚本运行一个Python脚本,并获得它,pid以便我可以在以后杀死它.

我尝试subprocess.Popen()使用父脚本的参数shell=True', but thepid attribute returns thepid`,所以当我尝试杀死子进程时,它会杀死父进程.

这是我的代码:

proc = subprocess.Popen(" python ./script.py", shell=True)
pid_ = proc.pid
.
.
.
# later in my code

os.system('kill -9 %s'%pid_)

#IT KILLS THE PARENT :(
Run Code Online (Sandbox Code Playgroud)

python subprocess

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

os.path.abspath vs os.path.dirname

这些在字符串值上是相等的,但它们真的相同吗?怎么回事?

import os

path_name1 = os.path.abspath(os.path.dirname(__file__))
path_name2 = os.path.dirname(os.path.abspath(__file__))

print(path_name1)
print(path_name2)
Run Code Online (Sandbox Code Playgroud)

python python-3.x os.path

6
推荐指数
1
解决办法
2106
查看次数