Python - 我怎样才能捕捉到 chown 的错误。 chown:无效用户[关闭]

Posted

技术标签:

【中文标题】Python - 我怎样才能捕捉到 chown 的错误。 chown:无效用户[关闭]【英文标题】:Python - how can i catch error of chown. chown: invalid user [closed] 【发布时间】:2017-12-07 11:09:12 【问题描述】:

如果有错误,我想将这个错误显示到消息框并停止 if 语句。

我怎样才能发现错误?

【问题讨论】:

你需要展示一些代码。你在你的代码中使用 shell 命令吗?你在使用子进程模块吗? 抱歉缺少编码。 def execute(): filez = tb_filepath.get() O = tb_o.get() G = tb_group.get() chown = "chown" + O + ":" + G + " " + filez ------ -------------------------------------------------- ---------- 如果我在没有此用户的 O 文本框中输入 abc,如何将无效用户错误输出到消息框? 该代码的正确位置是将其编辑到您的问题中。我也不知道你用的是什么模块。您还需要参考文档。见 Thavendren 的回答。 【参考方案1】:

取决于你如何称呼它。如果您使用子流程模块:

p = subprocess.Popen(['chown', 'bad_user', '/file_path'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
print(err)

应该给你:

chown: bad_user: 非法用户名

现在这是在 Python 2.7 中。 Python 3 有一种更简单的调用方式。应该是:(未测试)

result = subprocess.run(['chown', 'bad_user', '/file_path'], stdout=subprocess.PIPE)
result.stdout

【讨论】:

我使用 os.popen() 来运行命令 chown。有什么方法可以捕获错误吗? 不确定 os.popen(),但您可以使用 os.popen3 获取它: import os (child_stdin, child_stdout, child_stderr) = os.popen3('chown bad_user /Users/sravindran/test .py') print('error = '.format(child_stderr.read())) 此外,自 2.6 起,所有 os.popen* 函数已被弃用。从技术上讲,您应该使用 subprocess 模块。仅供参考

以上是关于Python - 我怎样才能捕捉到 chown 的错误。 chown:无效用户[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

我怎样才能捕捉到视图变得可见

我怎样才能捕捉到弹簧消息 JstTagException?

如何用哨兵捕捉python警告?

jquery的chosen控件,怎样才能捕捉到input的输入事件

SpriteKit - 鼠标在 Sprite 拖动时捕捉到中心

我怎样才能更多地了解 Python 的内部结构? [关闭]