命令行运行python脚本不输入python_如何扩展这个python脚本,以接收命令行而不是提示的用户输入?...

目前,我有一个python脚本,它接收一个文本文件,检查由标记##Somethinghere#括起来的段落,并询问用户他/她要复制多少次。例如,如果我有文本文件:Random Text File

##RandomLine1##

Random Line 1

##RandomLine1##

Random Line 2

##RandomLine3##

Random Line 2

##RandomLine3##

End of file

系统将提示用户:

^{pr2}$

一旦用户输入数字,特定的封闭线被复制到指定的次数,并且标签被删除。复制多次后的文本将输出到指定的输出文件。在

要启动脚本,命令如下所示:python script.py inputfile outputfile

我想做的不是提示用户输入,而是用户可以选择输入循环的数量作为可选的命令行参数。比如:python script.py inputfile outputfile --RandomLine1 2 --RandomLine3 2

对于python脚本,这是可能的吗?我附上以下脚本的当前版本:import re

import argparse

pattern = '##([^#]*)##'

def main():

parser = argparse.ArgumentParser()

parser.add_argument('infile', type=argparse.FileType('r'))

parser.add_argument('outfile', type=argparse.FileType('w'))

args = parser.parse_args()

matcher = re.compile(pattern)

tagChecker = False

strList = []

for line in args.infile:

if tagChecker is True:

lineTest = matcher.search(line)

if lineTest:

tagChecker = False

for _ in range(int(raw_input('Loop ' + lineTest.string[2:-3] + ' how many times?')) - 1):

for copyLine in strList:

args.outfile.write(copyLine)

new_line = matcher.sub("", line)

args.outfile.write(new_line)

strList = []

continue

else:

strList.append(line)

args.outfile.write(line)

if tagChecker is False:

lineTest = matcher.search(line)

if lineTest:

tagChecker = True

new_line = matcher.sub("", line)

args.outfile.write(new_line)

else:

args.outfile.write(line)

args.infile.close()

args.outfile.close()

if __name__ == '__main__':

main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值