Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

python parse file

I have a file with username and emails, in this format :

pete,[email protected]

I want to only keep the email, so i thought about using a regex like this :

import re,sys

Mailfile = sys.argv[1]

file = open(Mailfile, "r")

for MAIL in file.readlines():
   tmp = re.split("\n+", MAIL)
   m = re.match( ',(.+)', MAIL)
   m.group(0)

But then I don't know how to store the result in a file. I always get the last email address in the new file.

What would be the best way to store the results in a file ? Thanks!

like image 471
user1473508 Avatar asked Feb 10 '26 13:02

user1473508


2 Answers

import sys

infile, outfile = sys.argv[1], sys.argv[2]

with open(infile) as inf, open(outfile,"w") as outf:
    line_words = (line.split(',') for line in inf)
    outf.writelines(words[1].strip() + '\n' for words in line_words if len(words)>1)
like image 109
Hugh Bothwell Avatar answered Feb 13 '26 03:02

Hugh Bothwell


You could use the csv module (since your data looks comma-separated, at least in your example):

import sys
import csv
with open('mail_addresses.txt', 'w') as outfile:
    for row in csv.reader(open(sys.argv[1], 'rb')):
        outfile.write("%s\n" % row[1])
like image 37
miku Avatar answered Feb 13 '26 01:02

miku



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!