与grep 一起使用时Python 子进程调用卡住|

你一个人

我想获取大于 4GB 的 tar.gz 文件的未压缩文件大小。我找到了一个 shell 命令来做同样的事情,shell 命令工作得很好。但是当我在我的 python 程序中使用相同的命令时,它永远不会完成。

我在 RHEL 6.8 上运行脚本。

获取正确的未压缩文件大小的命令

gzip -dc some_tar_gz.tar.gz | wc -c

我的python脚本

import subprocess
import shlex
from pprint import pprint

command_list = shlex.split("gzip -dc some_tar_gz.tar.gz | wc -c")
result = subprocess.Popen(command_list, stdout=subprocess.PIPE,   stderr=subprocess.PIPE, shell=True)
out, err = result.communicate()
pprint(out)

上面的 gzip 命令在不到 5 分钟的时间内返回了未压缩的文件大小。但是上面的python脚本即使在1小时后也没有返回任何结果。

编辑1:

当我删除shell=True并看到top命令 python 进程的结果在该进程被自动终止之后占用了大约 27GB VIRT。我遇到了问题,但我不知道如何解决这个问题。

你一个人

工作代码,以防有人有同样的问题

import subprocess
import shlex
from pprint import pprint

command_list_1 = shlex.split("gzip -dc some_tar_file.tar.gz")
command_list_2 = shlex.split("wc -c")

p1 = subprocess.Popen(command_list_1, stdout=subprocess.PIPE)
p2 = subprocess.Popen(command_list_2, stdin=p1.stdout, stdout=subprocess.PIPE)
p1.stdout.close()

output = p2.communicate()[0]
pprint(output.rstrip())

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用python启动openoffice进程以与pyuno一起使用

来自分类Dev

将管道与python“子进程”模块一起使用

来自分类Dev

Python子进程调用挂起?

来自分类Dev

与RTL语言一起使用时,字符串替换函数调用的顺序

来自分类Dev

如何使Maven与Python子进程一起使用?

来自分类Dev

将子流程与traceroute一起使用时没有错误输出

来自分类Dev

在Mac OS-X中将tail -f与多个Grep命令一起使用时无输出

来自分类Dev

与Recaptcha一起使用时,Ajax调用无法正常工作

来自分类Dev

为什么grep无法与重定向一起使用?

来自分类Dev

“方法'where'在null上调用。” 当将流构建器与Firestore抖动一起使用时

来自分类Dev

MSVC __debugbreak()与openGL错误回调一起使用时不产生调用栈

来自分类Dev

与COPY FROM STDIN一起使用时,PostgreSQL CopyManager copyIn似乎卡住了什么

来自分类Dev

使用grep过滤进程的输出

来自分类Dev

为什么grep无法与重定向一起使用?

来自分类Dev

将管道与python“子进程”模块一起使用

来自分类Dev

一起使用grep和awk

来自分类Dev

Python子进程调用挂起?

来自分类Dev

一次与grep一起使用mysqlshow

来自分类Dev

如何使用grep并剪切在一起?

来自分类Dev

锚不能与grep一起使用

来自分类Dev

为什么waitpid系统调用只能与子进程一起使用?

来自分类Dev

将Grep函数与for循环一起使用

来自分类Dev

当与-Pz一起使用时,grep命令不支持行锚的起始'^'和'$'

来自分类Dev

在Mac OS-X中将tail -f与多个Grep命令一起使用时无输出

来自分类Dev

与管道一起使用时,grep正则表达式产生奇怪结果

来自分类Dev

当将片段事务与FrameLayout一起使用时,为什么片段调用OnCreate / OnCreateView?

来自分类Dev

等到所有ajax调用完成都无法与$ .when一起使用时

来自分类Dev

与内连接一起使用时,子查询返回多个值

来自分类Dev

与 Alamofire 一起使用时未调用 cellForRowAtIndexPath

Related 相关文章

  1. 1

    使用python启动openoffice进程以与pyuno一起使用

  2. 2

    将管道与python“子进程”模块一起使用

  3. 3

    Python子进程调用挂起?

  4. 4

    与RTL语言一起使用时,字符串替换函数调用的顺序

  5. 5

    如何使Maven与Python子进程一起使用?

  6. 6

    将子流程与traceroute一起使用时没有错误输出

  7. 7

    在Mac OS-X中将tail -f与多个Grep命令一起使用时无输出

  8. 8

    与Recaptcha一起使用时,Ajax调用无法正常工作

  9. 9

    为什么grep无法与重定向一起使用?

  10. 10

    “方法'where'在null上调用。” 当将流构建器与Firestore抖动一起使用时

  11. 11

    MSVC __debugbreak()与openGL错误回调一起使用时不产生调用栈

  12. 12

    与COPY FROM STDIN一起使用时,PostgreSQL CopyManager copyIn似乎卡住了什么

  13. 13

    使用grep过滤进程的输出

  14. 14

    为什么grep无法与重定向一起使用?

  15. 15

    将管道与python“子进程”模块一起使用

  16. 16

    一起使用grep和awk

  17. 17

    Python子进程调用挂起?

  18. 18

    一次与grep一起使用mysqlshow

  19. 19

    如何使用grep并剪切在一起?

  20. 20

    锚不能与grep一起使用

  21. 21

    为什么waitpid系统调用只能与子进程一起使用?

  22. 22

    将Grep函数与for循环一起使用

  23. 23

    当与-Pz一起使用时,grep命令不支持行锚的起始'^'和'$'

  24. 24

    在Mac OS-X中将tail -f与多个Grep命令一起使用时无输出

  25. 25

    与管道一起使用时,grep正则表达式产生奇怪结果

  26. 26

    当将片段事务与FrameLayout一起使用时,为什么片段调用OnCreate / OnCreateView?

  27. 27

    等到所有ajax调用完成都无法与$ .when一起使用时

  28. 28

    与内连接一起使用时,子查询返回多个值

  29. 29

    与 Alamofire 一起使用时未调用 cellForRowAtIndexPath

热门标签

归档