我正致力于将我写入并行进程的一些代码翻译成在我的家乡大学的计算机集群上进行分发。为了准备写我的剧本集群,我开始通过阅读由集群提供的Python代码样本片段之一:寻找帮助了解os.system()中的sed命令()Python行
#! /usr/bin/python
# This script replicates a given test with varied parameters
# creating unique submit scripts and executing the submission to the CRC SGE queue
# Imports
import os
import shutil
import string
basedir=os.getcwd()
origTestFol='wwd'
templFol='template'
origTestDir= basedir + '/' + origTestFol
templFolDir= basedir + '/' + templFol
steps=[0,1,2,3,4,5,6,7,8,9]
primes=[2,3,5,7,11,13,17,19,23,29,31]
trials=[6,7,8,9,10]
for step in steps:
newTestDir= origTestDir + '_nm_' + str(step)
if not os.path.exists(newTestDir):
os.mkdir(newTestDir)
os.chdir(newTestDir)
for trial in trials:
newTestSubDir= newTestDir + '/' + str(trial)
if not os.path.exists(newTestSubDir):
shutil.copytree(templFolDir,newTestSubDir)
os.chdir(newTestSubDir)
os.system('sed -i \'s/seedvalue/' + str(primes[trial]) + '/g\' wwd.nm.conf')
os.system('sed -i \'s/stepval/' + str(step) + '/g\' qsubScript.sh')
os.system('qsub qsubScript.sh')
os.chdir(basedir)
我可以遵循的代码,直至最后四行[例如直到“os.system('sed -i ...)”],但之后的代码很难。其他人能否帮助我理解最后四行的内容。有没有办法来描述伪代码中的谎言?据我所知,第一条sed行尝试用primes [trial]的值替换“seedvalue”,但我不确定seedvalue是什么。我也不确定如何理解后续行中的“stepval”。任何其他人可以解决这些问题的亮点将是最受赞赏的。
感谢您对s/command和-i标志@emnoor的简洁定义。这个简单的解释帮助我掌握了最后四行代码的功能。 – duhaime