繁体   English   中英

将perl脚本应用于目录中的每个文件,并使用Python获取输出

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM