我有两个我一直在搞乱的开源文件,一个文件是我正在使用的一个小宏脚本,第二个是填充了命令的txt文件我想插入到第一个脚本中各自行内的随机顺序。我已设法提出这个脚本来搜索和替换值,但不是从第二个txt文件中以随机顺序插入它们。
def replaceAll(file,searchExp,replaceExp):
for line in fileinput.input(file, inplace=1):
if searchExp in line:
line = line.replace(searchExp,replaceExp)
sys.stdout.write(line)
replaceAll('C:/Users/USERACCOUNT/test/test.js','InterSearchHere', RandomValueFrom2ndTXT)
任何帮助,如果非常感谢!提前谢谢!
答案 0 :(得分:1)
import random
import itertools as it
def replaceAll(file,searchExp,replaceExps):
for line in fileinput.input(file, inplace=1):
if searchExp in line:
line = line.replace(searchExp,next(replaceExps))
sys.stdout.write(line)
with open('SecondFile','r') as f:
replaceExp=f.read().splitlines()
random.shuffle(replaceExps) # randomize the order of the commands
replaceExps=it.cycle(replaceExps) # so you can call `next(replaceExps)`
replaceAll('C:/Users/USERACCOUNT/test/test.js','InterSearchHere', replaceExps)
每次拨打next(replaceExps)
时,您都会获得与第二个文件不同的一行。
当有限迭代器耗尽时,next(replaceExps)
将引发StopIteration
异常。为了防止这种情况发生,我使用itertools.cycle
使洗牌命令列表无限重复。