我正在尝试将字符串行从文件2复制到文件1,如果该行在文件1中不存在。我用的是对称差分,但它给了我无序的结果。本例中的文件内容不是实际的。我的实际文件中没有数字,只有字符串,但我用数字来表示问题。我可能会给文件2添加数字,并将其按列表排序,但文件2随机地从其他程序获取信息,我不熟悉,也不想干涉。你知道吗
文件1的内容:
'1\n','2\n','3\n'
文件2的内容:
'1\n','2\n','3\n','4\n'`,'5\n','6\n','7\n','8\n','9\n','10\n'
每一行都是线
diff = set(file1).symmetric_difference(file2)
set(['8\n', '10\n', '9\n', '6\n', '7\n', '4\n', '5\n'])
我的目标是
set(['4\n', '5\n', '6\n', '7\n', '8\n', '9\n', '10\n'])
使用join()和split()
如果您还没有嫁给python,那么使用
comm
Unix可执行文件(如果您使用的是基于Unix的系统)就可以很容易地做到这一点:这假设文件是预先排序的。你知道吗
你可以很容易地call this from Python。你知道吗
More info on how to use ^{}
您可以从通过对称差分获得的集合中执行此操作:
然后有一个排序的列表,可以附加到file1
相关问题 更多 >
编程相关推荐