小编Mar*_*ger的帖子

什么可能导致perl中的打印错误?

我有一个长时间运行的脚本,每小时打开一个文件,打印到它并关闭文件.我最近很少发现,打印失败了,不是因为我正在测试打印本身的状态,而是因为在系统实际重启之前文件中缺少条目的事实!

我确实陷阱文件打开失败,并在发生这种情况时向syslog写一条消息,我没有看到任何打开的失败,所以我现在猜测它可能是失败的打印.我没有捕获打印失败,我怀疑大多数人没有,但我现在要更新那一个打印.

同时,我的问题是,有没有人知道什么类型的情况可能导致打印语句失败,当有足够的磁盘存储并且没有争用已成功打开附加模式的文件?

perl

7
推荐指数
1
解决办法
437
查看次数

在python中处理命令的连续输出

我是python的新手,多年来一直使用perl.我一直做的典型事情是perl打开一个命令作为管道并将其输出分配给局部变量进行处理.换一种说法:

"open CMD, "$command|";
$output=<CMD>;
Run Code Online (Sandbox Code Playgroud)

一块蛋糕.我想我可以这样在python中做类似的事情:

args=[command, args...]
process=subprocess.Popen(args, stdout=subprocess.PIPE)
output=process.communicate()
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.现在提出一个大问题......

如果我在多个平台上使用ssh启动该命令,我可以在select循环中监视perl中的描述符,以便在它们进入时处理结果.我确实找到了python select和poll模块,但我不太确定如何使用它们.文档说poll将采用文件句柄,但是当我尝试将上面的变量'process'传递给poll.register()时,我得到一个错误,它必须是int或者有一个fileno()方法.由于Popen()使用了stdout,我试着调用

poll.register(process.stdout)
Run Code Online (Sandbox Code Playgroud)

它不再抛出错误,而只是挂起.

有关如何制作此类作品的任何建议/指示?

python subprocess

5
推荐指数
1
解决办法
3560
查看次数

记住python模式匹配中的多个字段

这是一个基本的perl功能我必须相信你可以在python中做到但我在文档中找不到任何东西,除非它暗示...

这是解析字符串中时间字段的一个非常简单的示例:

time=re.search("(\d+):(\d+):(\d+)", variable)
Run Code Online (Sandbox Code Playgroud)

我确实理解是否会成功创建匹配对象.但我找不到的是找出与3种模式相匹配的值的方法,这样我就可以将它们填充到小时,分钟和秒等变量中.我发现的所有用法示例仅显示1组()s.

-标记

python regex

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

格式和变量之间的打印百分比实际上是多少?

我只是开始愚弄print语句的输出格式.

我看到的示例在格式列表之后和参数之前有%,如下所示:

>>> a=123
>>> print "%d" % a
123
Run Code Online (Sandbox Code Playgroud)

什么是%更重要的含义,为什么有必要?

python

0
推荐指数
1
解决办法
103
查看次数

标签 统计

python ×3

perl ×1

regex ×1

subprocess ×1