如何对比两个Python变量文件,将共同行移至公共文件并移除原文件对应行?
问题:提取Python变量文件的公共行并分离版本特有行
我有两个仅包含变量的Python文件,对应测试环境的不同版本。文件行数多达数千,但每个文件中仅有少量(<100个)版本特定变量,其余均可移至公共变量文件。
需求:对比version_1_vars.py和version_2_vars.py,提取顺序无关的完全匹配行,将其移动到common_vars.py,并从原文件中删除这些行。
示例代码
原文件:version_1_vars.py
var_1 = "Stackoverflow is cool" var_2 = "something_else" var_A = "I am here" var_version1_unique = "this is unique to version 1"
原文件:version_2_vars.py
var_1 = "Stackoverflow is cool" var_A = "I am here" var_2 = "something_else" var_version2_unique = "this is unique to version two"
期望结果
version_1_vars.py
var_version1_unique = "this is unique to version 1"
version_2_vars.py
var_version2_unique = "this is unique to version two"
common_vars.py
var_1 = "Stackoverflow is cool" var_2 = "something_else" var_A = "I am here"
尝试过的方法及问题
- 使用
grep命令:能将行移至新文件,但结果混有唯一行和公共行,且无法删除原文件中的对应行。 - 文件中存在
{}占位符,使用grep -vf会触发正则错误(无效{}内容);尝试grep -F -vf file_1 file_2 >> file_3也未达到预期效果。
内容的提问来源于stack exchange,提问作者I_Literally_Cannot
相关产品推荐
相关产品推荐

