[Tutor] Help merge files using python
Peter Otten
__peter__ at web.de
Fri Nov 15 10:04:36 CET 2013
jarod_v6 at libero.it wrote:
> Hi I want to merge many files like this:
> #file1
> A 10
> B 20
> C 30
> #file2
> B 45
> Z 10
> #file1
> A 60
> B 70
> C 10
>
> I want to obtain
>
> A 10 0 60
> B 20 45 70
> C 30 0 10
> Z 0 10 0
>
> I try to do like this:
> f = os.listdir(".")
> for i in f:
> T =open(i,"r")
> for r in t.readlines():
> print r
>
> Could you please help me to understand how to use the right procedure in
> python?Thanks a lot!
If I were into spoon-feeding I would post
import os
folder = "."
destfilename = "../pivot"
filenames = sorted(os.listdir(folder))
filenames = [os.path.join(folder, name) for name in filenames]
N = len(filenames)
pivot = {}
for index, filename in enumerate(filenames):
with open(filename) as file:
for line in file:
key, value = line.split()
pivot.setdefault(key, ["0"] * N)[index] = value
with open(destfilename, "w") as dest:
for key, value in sorted(pivot.items()):
dest.write("\t".join([key] + value))
dest.write("\n")
More information about the Tutor
mailing list