草庐IT

Python - 使用子进程获取和设置剪贴板数据

我最近从thispost发现一种通过子进程在python中获取和设置剪贴板数据的方法,这正是我的项目所需要的。importsubprocessdefgetClipboardData():p=subprocess.Popen(['pbpaste'],stdout=subprocess.PIPE)retcode=p.wait()data=p.stdout.read()returndatadefsetClipboardData(data):p=subprocess.Popen(['pbcopy'],stdin=subprocess.PIPE)p.stdin.write(data)p.stdi

python - 终止后从 tcpdump 子进程获取 stdout

我在这样的子进程中运行tcpdump:pcap_process=subprocess.Popen(['tcpdump','-s0','-w-','tcp'],stdout=subprocess.PIPE,stderr=subprocess.PIPE)-w-参数很重要:它告诉tcpdump将生成的.pcap文件打印到stdout。然后我继续使用urllib.open()访问网站。完成后,我想终止tcpdump并将它打印的任何内容放入字符串中。我尝试了以下方法:pcap_process.terminate()result=pcap_process.stdout.read()#orreadl

python - 为什么子进程标准输出到文件的顺序是乱写的?

我有一个调用可执行文件的python脚本。可执行文件的输出连同有关它被调用时间的一些信息被重定向到一个日志文件。例如用python-V作为可执行文件来说明:importtime,subprocesswithopen('./LOGFILE.txt','a')asF:F.write('******\n')F.write('Eventson%s:\n'%time.strftime("%Y-%m-%d%H:%M:%S",time.localtime()))EXE_output=subprocess.call(['python','-V'],stdout=F,stderr=F)LOGFILE.t

python - 获取 python 子进程的输出

我正在trycatch此处的输出。如果在python提示符下运行p=subprocess.Popen(["/path/to/search_by_hash.par",hash_str],stdout=subprocess.PIPE)返回值(列表)打印到标准输出,但未被捕获[4460475,4406612,4379510]我试过跟进它value=p.communicate()[0]value..但值是一个空字符串,不是我期望的整数列表,它正在打印到标准输出我尝试了来自Storeoutputofsubprocess.Popencallinastring的解决方案但无法捕获输出。更新:stde

Python子进程 "object has no attribute ' fileno'”错误

此代码在使用Python2.5.1运行时生成“AttributeError:'Popen'objecthasnoattribute'fileno'”代码:defget_blame(filename):proc=[]proc.append(Popen(['svn','blame',shellquote(filename)],stdout=PIPE))proc.append(Popen(['tr','-s',r"'\040'"],stdin=proc[-1]),stdout=PIPE)proc.append(Popen(['tr',r"'\040'",r"';'"],stdin=proc[

python - 具有超时的多个子进程

我正在使用依赖于SIGALRM的配方来设置警报中断--Usingmodule'subprocess'withtimeout问题是我有多个Python脚本使用signal.ALARM进程来设置超时,并且只调用最新的警报。改进此多个Python函数设置超时的好方法是什么? 最佳答案 除了简单、快速的hack,避免使用SIGALRM。这是一种非常古老、有限的机制,不适合更复杂的情况:您只能设置一个警报,并且它会同时中断任何系统调用,而不仅仅是您打算中断的系统调用。使用超时线程杀死进程会更干净,例如:importsubprocess,sig

python - 子进程的 ipython 笔记本输出

使用ipythonnotebook时,subprocess生成的子进程的输出永远不会出现在notebook本身中。比如这个单元格importsubprocesssubprocess.check_call(['echo','hello'])仅显示0作为输出,hello打印在启动ipython的终端上。是否有任何我可以调整的配置参数,以便子进程的输出显示在笔记本本身中?实际上,自定义pythonc扩展也会吞掉它们的输出。有什么办法解决吗? 最佳答案 如果您想要捕获输出,请使用check_output。check_call返回退出代码。i

python - 使用子进程时如何限制程序的执行时间?

我想使用子进程来运行一个程序,我需要限制执行时间。比如运行超过2秒就想kill掉。对于普通程序,kill()效果很好。但是,如果我尝试运行/usr/bin/timesomething,kill()并不能真正终止程序。我下面的代码似乎不能正常工作。该程序仍在运行。importsubprocessimporttimeexec_proc=subprocess.Popen("/usr/bin/time-f\"%e\\n%M\"./son>/dev/null",stdout=subprocess.PIPE,stderr=subprocess.STDOUT,shell=True)max_time=

python - 使用子进程时处理键盘中断

我有一个名为monitiq_install.py的python脚本,它使用subprocesspython模块调用其他脚本(或模块)。但是,如果用户发送键盘中断(CTRL+C),它会退出,但会出现异常。我希望它退出,但很好。我的代码:importosimportsysfromosimportlistdirfromos.pathimportisfile,joinfromsubprocessimportPopen,PIPEimportjson#RunamoduleandcaptureoutputandexitcodedefrunModule(module):try:#RunModulepr

Python 子进程 : wait for command to finish before starting next one?

我已经编写了一个Python脚本来下载和转换许多图像,使用wget然后通过链式subprocess调用ImageMagick:forimginimages:convert_str='wget-O./img/merchant/download.jpg%s;'%img['url']convert_str+='convert./img/merchant/download.jpg-resize110x110'convert_str+='-backgroundwhite-gravitycenter-extent110x110'convert_str+='./img/thumbnails/%s.j