【发布时间】:2016-08-16 16:52: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 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
上述输入部分的预期输出将是:
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
我尝试了我在下面写的内容,但没有返回任何内容。
r1=[]
file = open ('aa2','w')
with open('aa.txt') as m:
file.write('List')
file.write("\n")
for t in itertools.islice(m,500,6500):
for i in t:
if i != 0.00000E+00 :
d = i
k = re.search(r'([- ]\d+\.\d+)+' , d)
if k:
r1.append(k.group())
file.write(str(' '.join(map(str,r1))))
file.close()
【问题讨论】:
-
显示输入文件中的示例文本,以便我们知道它的格式。然后显示预期的输出。
-
@T.A.你可以edit你的问题包括样本输入和输出。另请注意,您的代码缩进搞砸了。请也解决这个问题。
-
编辑问题。不要将其发布为 cmets。以人们容易看到的方式格式化它。 cmets 不清楚这些数字是否由一个或多个空格、换行符、制表符等分隔。否则大多数人会跳过这个问题。为了帮助您,我们必须了解您拥有什么以及您想要什么。 Read this explanation of How to create a Minimal, Complete, and Verifiable example.
-
我为第一篇文章道歉。我进行了建议的更改