首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >md5sum和脚本的问题

md5sum和脚本的问题
EN

Stack Overflow用户
提问于 2014-05-30 06:16:32
回答 2查看 83关注 0票数 0

我的问题是:我无法在脚本中生成和存储目录的md5sum

这是我的纸条

代码语言:javascript
复制
#!/usr/bin/python 
md5= `md5sum /etc/shadow`

所发生的事情很简单,"md5sum /etc/影子“存储在我的变量md5上,而不是生成de stored

有人可以告诉我我做错了什么

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-30 06:24:17

您不能像在Perl中那样运行Bash脚本,您需要使用 module,它将运行命令并返回程序的输出。您需要通过communicate()获得这个输出

代码语言:javascript
复制
import subprocess

p = subprocess.Popen("md5sum /etc/shadow", stdout=subprocess.PIPE)
md5 = p.communicate()[0]
print md5

作为记录,回勾表示法是repr的别名,但在Python3中被取消推荐和删除。

代码语言:javascript
复制
>>> `id`
'<built-in function id>'
>>> repr(id)
'<built-in function id>'
票数 0
EN

Stack Overflow用户

发布于 2014-05-30 06:31:06

除了已经提供的答案(使用子流程)之外,您还可以自己计算md5之和:

代码语言:javascript
复制
> md5sum sean.bin
167f3284b5de3bc7dfafaa98b068a65e  sean.bin

>>> import hashlib
>>> md5 = hashlib.md5()
>>> md5.update(open("sean.bin").read())
>>> md5.hexdigest()
'167f3284b5de3bc7dfafaa98b068a65e'

下面是我如何使用子流程来完成这一任务:

代码语言:javascript
复制
>>> import subprocess
>>> cmd = "md5sum sean.bin"
>>> proc = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>>> out, err = proc.communicate()
>>> out.split(" ")[0]
'167f3284b5de3bc7dfafaa98b068a65e'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23948249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档