import subprocess result = subprocess.run(['pip', 'freeze'], stdout=subprocess.PIPE) rq_file = open("requirements.txt", "r") rq_file_versioned = open("requirements_versioned.txt", "w") rq_versioned = list() versioned_lines = result.stdout.decode("utf-8").split("\n")[:-1] rq_lines = rq_file.readlines() rq_file.close() def match(dependency): global versioned_lines for versioned_line in versioned_lines: versioned_line = versioned_line.strip() dependency_bulk = versioned_line.split("==")[0] if dependency == dependency_bulk: print(f"FOUND : {dependency} => {versioned_line}") return versioned_line print(f"SKIP : {dependency}") return dependency for rq_line in rq_lines: rq_line = rq_line.strip() dependency = rq_line.split("==")[0] rq_versioned.append(match(dependency)) rq_file_versioned.write("\n".join(rq_versioned)) rq_file_versioned.close()