- 论坛徽章:
- 0
|
"""
Syntax: merge_info infiles outfile
Example:
>> merge_info list1.txt list2.txt list3.txt
"""
def file2dict(f, d):
for line in f:
striped = line.rstrip(',\n')
name, phone = [i[1:-1] for i in striped.split(':', 1)]
if d.setdefault(name, [phone]) != [phone]:
d[name].append(phone)
def dict2file(d, f):
for name in d:
print >> f, "%s\t%s" % (name, ' '.join(d[name]))
if __name__ == '__main__':
import sys
in_files = sys.argv[1:-1]
out_file = sys.argv[-1]
res = {}
for fname in in_files:
try:
f = open(fname)
except IOError:
print >> sys.stderr, "Fail to open file: '%s'" % fname
print >> sys.stderr, "'%s' will be ignored.'" % fname
else:
file2dict(f, res)
finally:
f.close()
try:
f = open(out_file, 'w')
dict2file(res, f)
except IOError:
print >> sys.stderr, "Fail file operation: '%s'" % out_file
finally:
f.close() |
|