Choosing Only Non-zeros From A Long List Of Numbers In Text File
I have a text file with a long list of numbers. I would like to choose only the non-zeros and make another text file. This is a portion of the input file: 0.00000E+00 0.00000E+0
Solution 1:
You're using regex again where you don't need to. You're also doing something exceedingly bizarre where you're using islice
on the file. That's also unnecessary. You could just do this:
import io
file = io.StringIO('''
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 5.16677E-30
9.61708E-28 1.18779E-25 9.73432E-24 5.29352E-22 1.91009E-20 4.57336E-19
7.26588E-18 7.65971E-17 5.35806E-16 2.48699E-15 7.65973E-15 1.56539E-14
2.12278E-14 1.91010E-14 1.14046E-14 4.51832E-15 1.18780E-15 2.07196E-16
2.39824E-17 1.84193E-18 9.38698E-20 3.17431E-21 7.12271E-23 1.06050E-24
1.04773E-26 6.86848E-29 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
'''.strip())
#################################
# Actual Answer to your problem #
#################################
values = []
for line in file:
values.extend(val for val in line.strip().split() if val != '0.00000E+00')
with io.StringIO() as out:
for i, val in enumerate(values):
if i and not i % 6:
out.write('\n')
out.write(val+' ')
out.seek(0)
print(out.read())
Post a Comment for "Choosing Only Non-zeros From A Long List Of Numbers In Text File"