小编jfs*_*jfs的帖子

OSError:[Errno 8] Exec格式错误

我很难解析subprocess.Popen的参数.我正在尝试在我的Unix服务器上执行脚本.在shell提示符下运行时的脚本语法如下: /usr/local/bin/script hostname = <hostname> -p LONGLIST.无论我如何尝试,脚本都不在subprocess.Popen中运行

"="之前和之后的空格是强制性的.

import subprocess
Out = subprocess.Popen(['/usr/local/bin/script', 'hostname = ', 'actual server name', '-p', 'LONGLIST'],shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud)

以上不起作用.

当我使用shell = False时,我得到了 OSError: [Errno 8] Exec format error

python subprocess

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

空列表的安全max()函数

评估,

max_val = max(a)
Run Code Online (Sandbox Code Playgroud)

会导致错误,

ValueError: max() arg is an empty sequence
Run Code Online (Sandbox Code Playgroud)

除了a try,exceptcatch 之外,还有更好的方法可以防止此错误吗?

a = []
try:
    max_val = max(a)
except ValueError:
    max_val = default 
Run Code Online (Sandbox Code Playgroud)

python error-handling exception list max

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

在findstr中的正则表达式

我正在做一个小字符串验证findstr和它的/r标志,以允许正则表达式.特别是我想验证整数.

正则表达式

^[0-9][0-9]*$
Run Code Online (Sandbox Code Playgroud)

对于非负数而言工作得很好但是因为我现在支持负数而且我试过了

^([1-9][0-9]*|0|-[1-9][0-9]*)$
Run Code Online (Sandbox Code Playgroud)

对于正整数或负整数或零.

正则表达式在理论上运行良好.我在PowerShell中测试了它,它符合我的要求.然而,随着

findstr /r /c:"^([1-9][0-9]*|0|-[1-9][0-9]*)$"
Run Code Online (Sandbox Code Playgroud)

它没有.

虽然我知道findstr没有最先进的正则表达式支持(甚至在Notepad ++之下,这可能是一项相当大的成就),但我希望这些简单的表达式可以工作.

我在这里做错了什么想法?

regex windows command-line findstr

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

是否有一个教程可以教授有经验的程序员使用的常见Ruby编程习语,但对于新手来说可能并不明显?

我正在寻找一个像Python一样的 Ruby 代码:Idiomatic Python

理想的功能:

  • 易于阅读
  • 单个文档,涵盖所有主题:提示,技巧,指南,警告和陷阱
  • 大小不到一本书
  • 成语应该开箱即用于标准发行(% sudo apt-get install ruby irb rdoc)

如果可能的话,请在每个答案中放一个教程,并附上教程中的示例代码及其含义.

更新:

这些是我遇到的上述描述资源最接近的:

ruby idioms

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

如何在Emacs Lisp中汇总数字列表?

这有效:

(+ 1 2 3)
6
Run Code Online (Sandbox Code Playgroud)

这不起作用:

(+ '(1 2 3))
Run Code Online (Sandbox Code Playgroud)

如果' cl-*'被加载,这是有效的:

(reduce '+ '(1 2 3))
6
Run Code Online (Sandbox Code Playgroud)

如果reduce总是可用我可以写:

(defun sum (L)
  (reduce '+ L))

(sum '(1 2 3))
6
Run Code Online (Sandbox Code Playgroud)

定义函数的最佳实践是sum什么?

emacs elisp

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

如何使用Python找到Windows常用应用程序数据文件夹?

我希望我的应用程序存储一些数据供所有用户访问.使用Python,我如何找到数据的去向?

python windows application-data common-files

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

Python在保留顺序的同时分别从子进程stdout和stderr读取

我有一个python子进程,我正在尝试从中读取输出和错误流.目前我有它的工作,但我只能在读完stderr之后阅读stdout.这是它的样子:

process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout_iterator = iter(process.stdout.readline, b"")
stderr_iterator = iter(process.stderr.readline, b"")

for line in stdout_iterator:
    # Do stuff with line
    print line

for line in stderr_iterator:
    # Do stuff with line
    print line
Run Code Online (Sandbox Code Playgroud)

如您所见,stderrfor循环在stdout循环完成之前无法启动.如何修改它以便能够以正确的顺序读取这两行?

澄清:我仍然需要能够判断一条线是否来自stdout或者stderr因为我的代码中它们的处理方式不同.

python subprocess stdout stderr

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

Emacs最好的代码模板工具是什么?

特别是,什么是最好的片段包?

特征:

  • 容易定义新片段(纯文本,默认自定义输入)
  • 在代码段中的预定义位置之间进行简单导航
  • 多次插入相同的自定义输入
  • 接受当前选定的文本作为自定义输入
  • 跨平台(Windows,Linux)
  • 用简洁的编程语言编写的动态计算表达式(嵌入式代码)(首选Perl,Python,Ruby)
  • 很好地与Emacs中的其他软件包共存

代码模板示例,forC中的简单循环:

for (int i = 0; i < %N%; ++i) {
  _
}
Run Code Online (Sandbox Code Playgroud)

这种常见代码的输入很多.我想调用一个代码模板或代码片段,为我插入样板代码.此外,它停止(在TAB或其他击键上)%N%(我的输入替换它)和光标的最终位置_.

emacs template-engine code-snippets

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

将字符串与数组中的所有值进行比较

我试图通过python摸索,并学习做事的最佳方式.我有一个字符串,我正在与另一个字符串进行比较,看看是否有匹配:

if paid[j].find(d)>=0:
    #BLAH BLAH
Run Code Online (Sandbox Code Playgroud)

如果'd'是一个数组,那么查看付费[j]中包含的字符串是否与'd'中的任何值匹配的最有效方法是什么?

python

28
推荐指数
3
解决办法
9万
查看次数

当父进程死亡时,如何杀死用subprocess.check_output()创建的python子进程?

我在linux机器上运行一个python脚本,它使用subprocess.check_output()创建一个子进程,如下所示:

subprocess.check_output(["ls", "-l"], stderr=subprocess.STDOUT)
Run Code Online (Sandbox Code Playgroud)

问题是,即使父进程死亡,子进程仍在运行.当父母去世时,我有什么办法可以杀死孩子的过程吗?

python linux subprocess

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