I have the next code which reads from multiple files, parses obtained lines and prints the result:
import os
import re
files=[]
pars=[]
for i in os.listdir('path_to_dir_with_files'):
files.append(i)
for f in files:
with open('path_to_dir_with_files'+str(f), 'r') as a:
pars.append(re.sub('someword=|\,.*|\#.*','',a.read()))
for k in pars:
print k
But I have problem with multiple new lines in output:
test1
test2
Instead of it I want to obtain the next result without empty lines in output:
test1
test2
and so on.
I tried playing with regexp:
pars.append(re.sub('someword=|\,.*|\#.*|^\n$','',a.read()))
But it doesn't work. Also I tried using strip() and rstrip() including replace. It also doesn't work.
Use the re. sub() method to replace multiple spaces with a single space, e.g. result = re. sub(' +', ' ', my_str) .
Newline code \n (LF), \r\n (CR + LF) Inserting a newline code \n , \r\n into a string will result in a line break at that location. On Unix, including Mac, \n (LF) is often used, and on Windows, \r\n (CR + LF) is often used as a newline code.
You could use a second regex to replace multiple new lines with a single new line and use strip to get rid of the last new line.
import os
import re
files=[]
pars=[]
for i in os.listdir('path_to_dir_with_files'):
files.append(i)
for f in files:
with open('path_to_dir_with_files/'+str(f), 'r') as a:
word = re.sub(r'someword=|\,.*|\#.*','', a.read())
word = re.sub(r'\n+', '\n', word).strip()
pars.append(word)
for k in pars:
print k
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With