[英]Applying a perl script to every file in a directory and obtain output using Python
我正在尝试制作一个python脚本,该脚本将打开一个目录,将perl脚本应用于该目录中的每个文件,并将其输出到多个文本文件或一个文件中。
我目前有:
import shlex, subprocess
arg_str = "perl tilt.pl *.pdb > final.txt"
arg = shlex.split(arg_str)
import os
framespdb = os.listdir("prac_frames")
for frames in framespdb:
subprocess.Popen(arg, stdout=True)
我不断发现* .pdb。 我对所有这些都是新手,因此尝试完成此脚本的任何帮助都会有所帮助。
找不到* .pdb的意思是-您正在运行脚本的任何目录中都没有* .pdb ...并且在我阅读代码时-我看不到任何暗示它在'框架'内的内容当它运行perl脚本时。
您可能需要在Popen之前使用os.chdir(path)。 如何在Python中“ cd”?
...使用python脚本运行对perl的可疑syscall可能会冒犯某些人,但每个人都这样做了..除此之外,我还指出:
始终指定完整路径(如果您稍后要说,想从cron或没有PATH的环境中自动运行作业,这将成为一个问题)。 即“哪个perl”-输入完整路径。
./ .pdb会更好,但不如fullpath / .pdb(您可以使用它代替os.chdir选项)更好。
subprocess.Popen(arg, stdout=True)
不扩展文件名通配符。 要处理*.pdb
,请使用shell=True
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.