Python 中的 subprocess.call 没有这样的文件或目录错误

数字链接

一般来说,我试图使用 Bash 从命令行而不是 Python 中读取,以便我具有制表符完成功能。我想以最简单的方式做到这一点。但是,我无法使以下代码正常工作,我想了解导致问题的原因。

Python脚本:

from subprocess import call
call(['read', '-ep', 'Path:', 'temporaryPath'])
print temporaryPath

错误追溯:

Traceback (most recent call last):
  File "tmp.py", line 2, in <module>
    call(['read', '-ep', 'Path:', 'temporaryPath'])
  File "/usr/lib64/python2.6/subprocess.py", line 478, in call
    p = Popen(*popenargs, **kwargs)
  File "/usr/lib64/python2.6/subprocess.py", line 642, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.6/subprocess.py", line 1238, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
朱利安·帕拉德

您正在尝试调用readwhich 是内置的 shell:

$ type read
read is a shell builtin

并且这个特定的 shell 内置程序没有等效的程序:

$ which read
$ 

因此PATH,根据以下内容,Python 将无法在您的环境变量中找到它strace

[pid 17266] execve("/usr/local/bin/read", ["read", "-ep", "Path:", "temporaryPath"], [/* 70 vars */]) = -1 ENOENT (No such file or directory)
[pid 17266] execve("/usr/bin/read", ["read", "-ep", "Path:", "temporaryPath"], [/* 70 vars */]) = -1 ENOENT (No such file or directory)
[pid 17266] execve("/bin/read", ["read", "-ep", "Path:", "temporaryPath"], [/* 70 vars */]) = -1 ENOENT (No such file or directory)
[pid 17266] execve("/usr/local/games/read", ["read", "-ep", "Path:", "temporaryPath"], [/* 70 vars */]) = -1 ENOENT (No such file or directory)
[pid 17266] execve("/usr/games/read", ["read", "-ep", "Path:", "temporaryPath"], [/* 70 vars */]) = -1 ENOENT (No such file or directory)
[…]
[pid 17266] write(4, "OSError:", 8 <unfinished ...>

但是,如果您明确要求 Python 使用 shell 来执行您的命令,则 shell 本身将能够运行其内置命令read

$ python3
Python 3.5.3 (default, Jan 19 2017, 14:11:04) 
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> subprocess.call('read', shell=True)
/bin/sh: 1: read: arg count
2
>>> subprocess.call('read foo', shell=True)
hello world
0

您现在遇到了一个新问题:shell 内置read函数将读取的值存储为一个 shell 变量,在调用subprocess.call.

哦,在read内置shell 中,你也没有完成。如果您想以交互方式向用户询问某些内容,或者如果不需要交互,您可能应该只使用输入,只需使用argparse来解析用户作为命令行参数提供的内容,这样用户在键入时将有一些 shell 完成参数,通常不在标志上,因为用户 shell 不知道它们,但在路径上。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

matplotlib pgf:OSError:subprocess.py中没有这样的文件或目录

来自分类Dev

FileNotFound 错误:[Errno 2] 在 Windows 上迭代 Python 中的文件列表时没有这样的文件或目录 b?

来自分类Dev

IOError: [Errno 2] 没有这样的文件或目录试图在 python 中打开文件

来自分类Dev

Python错误没有这样的文件或目录

来自分类Dev

Python子进程错误没有这样的文件或目录

来自分类Dev

python tox - 没有这样的文件或目录错误

来自分类Dev

Golang中没有这样的文件或目录错误

来自分类Dev

在Linux中没有这样的文件或目录错误

来自分类Dev

错误2 pytesseract中没有这样的文件或目录

来自分类Dev

Python:errno2在Google Colab中没有这样的文件或目录

来自分类Dev

Python os.remove - 目录中没有这样的文件

来自分类Dev

解析Python中subprocess.call()的输出

来自分类Dev

是什么导致Windows vscode中hello.py出现此错误的:“-bash:C:/Python37/python.exe:没有这样的文件或目录”?

来自分类Dev

Python':没有这样的文件或目录

来自分类Dev

目录中没有这样的文件

来自分类Dev

Subprocess.Popen 在 Docker 容器中运行时给出“没有这样的文件”

来自分类Dev

python中没有这样的列错误

来自分类Dev

使用 subprocess.call 执行 python 文件?

来自分类Dev

sh中没有“没有这样的文件或目录”错误,但是该文件存在吗?

来自分类Dev

使用cat连接目录中的文件会出现“没有这样的文件或目录”错误

来自分类Dev

在python cpl_error.h中安装Fiona时遇到麻烦:没有这样的文件或目录

来自分类Dev

在bash脚本中查找命令仅对目录导致“没有这样的文件或目录”错误?

来自分类Dev

mkdir目录中存在“没有这样的文件或目录”

来自分类Dev

管道传输到文件时,python subprocess.call错误

来自分类Dev

错误libtorch_python.so:无法打开共享对象文件:没有这样的文件或目录

来自分类Dev

bash中“没有这样的文件或目录”错误,但是文件存在吗?

来自分类Dev

在我的python代码中停止subprocess.call循环

来自分类Dev

如何在Python中调试成subprocess.call()?

来自分类Dev

Python-IOError:[Errno 2]没有这样的文件或目录:u'lastid.py'用于同一目录中的文件。在本地工作,不在Heroku上工作

Related 相关文章

  1. 1

    matplotlib pgf:OSError:subprocess.py中没有这样的文件或目录

  2. 2

    FileNotFound 错误:[Errno 2] 在 Windows 上迭代 Python 中的文件列表时没有这样的文件或目录 b?

  3. 3

    IOError: [Errno 2] 没有这样的文件或目录试图在 python 中打开文件

  4. 4

    Python错误没有这样的文件或目录

  5. 5

    Python子进程错误没有这样的文件或目录

  6. 6

    python tox - 没有这样的文件或目录错误

  7. 7

    Golang中没有这样的文件或目录错误

  8. 8

    在Linux中没有这样的文件或目录错误

  9. 9

    错误2 pytesseract中没有这样的文件或目录

  10. 10

    Python:errno2在Google Colab中没有这样的文件或目录

  11. 11

    Python os.remove - 目录中没有这样的文件

  12. 12

    解析Python中subprocess.call()的输出

  13. 13

    是什么导致Windows vscode中hello.py出现此错误的:“-bash:C:/Python37/python.exe:没有这样的文件或目录”?

  14. 14

    Python':没有这样的文件或目录

  15. 15

    目录中没有这样的文件

  16. 16

    Subprocess.Popen 在 Docker 容器中运行时给出“没有这样的文件”

  17. 17

    python中没有这样的列错误

  18. 18

    使用 subprocess.call 执行 python 文件?

  19. 19

    sh中没有“没有这样的文件或目录”错误,但是该文件存在吗?

  20. 20

    使用cat连接目录中的文件会出现“没有这样的文件或目录”错误

  21. 21

    在python cpl_error.h中安装Fiona时遇到麻烦:没有这样的文件或目录

  22. 22

    在bash脚本中查找命令仅对目录导致“没有这样的文件或目录”错误?

  23. 23

    mkdir目录中存在“没有这样的文件或目录”

  24. 24

    管道传输到文件时,python subprocess.call错误

  25. 25

    错误libtorch_python.so:无法打开共享对象文件:没有这样的文件或目录

  26. 26

    bash中“没有这样的文件或目录”错误,但是文件存在吗?

  27. 27

    在我的python代码中停止subprocess.call循环

  28. 28

    如何在Python中调试成subprocess.call()?

  29. 29

    Python-IOError:[Errno 2]没有这样的文件或目录:u'lastid.py'用于同一目录中的文件。在本地工作,不在Heroku上工作

热门标签

归档