Использование «a» означает, что у вас будут два требования одного и того же типа, например:
numpy=1.14
pandas=1.4
django=1.6
flask=1.4
django=2.1
flask=2.0
Вместо этого вы должны перезаписать файл обновленным списком требований.
Сначала загрузите данные и поместите их в словарь:
fr=open('requirement.txt ', 'r')
L=fr.read().split("\n") #Better than .readlines(), since it removes '\n'
fr.close() #Very important, since you're going to write back into it.
D=dict()
for e in L:
E=e.split("=")
if len(E)<2:
continue
D[E[0]]=E[1]
Затем примените аргументы к словарю:
D[arguments[0]]=arguments[1]
Наконец, поместите данные словаря обратно в строку иперезапишите файл:
result="\n".join([e+"="+D[e] for e in D])
fw=open('requirement.txt ', 'a')
fw.write(result)
fw.close()
, который должен дать желаемый результат.
Кроме того, вы должны отслеживать порядок ключей в списке, если вы хотите сохранить его.