我刚刚完成了很长一段代码的重构。
我的重构包括将源代码分解为许多文件夹中许多文件中的许多函数。
既然我已经完成了,我想确保原始代码中没有一行不存在于我创建的新文件中。
我需要的伪代码是这样的:
for line in sourceCode:
if length(grep line refacoredLib)==0:
print line + " does not exist in refactored code"
我的第一个想法是写一个python \ bash实现,你知道有更优雅的解决方案吗? 谢谢!
答案 0 :(得分:6)
或者,如果您不想重新发明轮子:
cat newfiles/* | sort > /tmp/new
cat oldfile.py | sort > /tmp/old
comm -23 /tmp/old /tmp/new
不是Python,我知道,但仍然。
答案 1 :(得分:1)
好吧,你可以比较Python中的几组行,但这不是一行的。
source_files = ['source1.py', 'source2.py']
new_files = ['new1.py', 'new2.py']
old_lines, new_lines = set(), set()
for source in source_files:
with open(source) as sf:
old_lines.update(sf)
for new in new_files:
with open(new) as nf:
new_lines.update(nf)
for line in old_lines - new_lines:
print line + " does not exist in refactored code"