首页 > 解决方案 > 如何在命令行中将参数传递给文件并使用python更改文件内的字符串?

问题描述

我有一个文件 requirements.txt 文件。以下文本如下。如何更改 django 和 flask 的值并通过作为命令行参数传递来更新文件

需求.txt

 numpy=1.14
 pandas=1.4
 django=1.6
 flask=1.4

我的 python file.py 在下面

 import sys
 import re
 program_name = sys.argv[0]
 arguments = sys.argv[1:]
 print (arguments[0])
 print (arguments[1])
 with open('requirement.txt ', 'r') as fr:
     data = fr.readlines()
     with open('requirement.txt ', 'a') as fw:
     fw.write(....)

python file.py django=2.1 烧瓶=2.0

requirements.txt 的输出

 numpy=1.14
 pandas=1.4
 django=2.1 
 flask=2.0

标签: pythonregexfile-iocommand-linearguments

解决方案


import re
import sys

arguments = dict(i.split("=") for i in sys.argv[1:])   #CMD line Arguments.
with open('requirement.txt', 'r') as fr:         #Read content
    data = fr.read()

for k, v in arguments.items():
    data = re.sub(r"{}=(.*)".format(k), "{}={}".format(k,v), data)   #Update content

with open(filename, 'w') as fr:              #Write back data. 
    fr.write(data)

推荐阅读