我有两份文件。在
第一个文件(约400万个条目)有2列:[Label][Energy]
第二个文件(约200000个条目)有2列:[上标签][下标签]
例如:
文件1:
375677 4444.5
375678 6890.4
375679 786.0
文件2:
^{pr2}$我想将文件2中的“label”值替换为文件1中的“energy”值,使文件2变成:
文件2(新):
4444.5 786.0
6890.4 786.0
或将“能量”值添加到文件2中,使文件2变为:
文件2(可选):
375677 375679 4444.5 786.0
375678 375679 6890.4 786.0
在python中肯定有办法做到这一点,但我的大脑不工作了。在
到目前为止我已经写了
from sys import argv
from scanfile import scanner
class UnknownCommand(Exception): pass
def processLine(line):
if line.startswith('23'):
print line[0:-1]
filename = 'test1.txt'
if len(argv) == 2: filename = argv[1]
scanner (filename, processLine)
where scanfile is:
def scanner(name, function):
file = open(name, 'r')
while True:
line = file.readline()
if not line: break
function(line)
file.close()
这使我可以通过从文件2(例如23)中手动插入标签来搜索和打印文件1中的lable+值。毫无意义又费时。在
我需要写一个从文件2中读取标签并将它们放入'线路启动('lable')连续,直到文件2的结尾。在
有什么建议吗?在
谢谢你的帮助。在
假设
file1
中的标签是唯一的,我将首先将该文件读入字典:这将提供一个包含如下内容的词典
^{pr2}$data1
:现在,通读
file2
,执行适当的修改如下 迭代该文件:或者,你可以选择:
只有当4百万个条目对你的记忆来说太多时,这种方法才值得采用
一些代码可以演示:
相关问题 更多 >
编程相关推荐