擅长:python、mysql、java
<p><code>csv.reader</code>初始值设定项的<a href="https://docs.python.org/3/library/csv.html#csv.reader" rel="nofollow noreferrer"><em>^{<cd1>}</em> argument</a>“可以是支持迭代器协议并在每次调用其<code>next()</code>方法时返回字符串的任何对象”</p>
<p>这意味着您可以通过定义如下所示的生成器函数来读取文件,以预处理文件的行,使它们为<code>csv.reader</code>所接受:</p>
<pre><code>import csv
def preprocess(file):
for line in file:
yield ','.join(line.split())
values = []
with open('cppfile.txt') as file:
fieldreader = csv.reader(preprocess(file))
next(fieldreader)
for row in fieldreader:
print(f'row={row}')
values.append(float(row[0]))
print()
print(values)
</code></pre>
<p>输出:</p>
<pre class="lang-none prettyprint-override"><code>row=['-16.0000000', '0.0000000', '9.9901854997e-01', '1.0910677716e-19']
row=['-16.0000000', '0.0245437', '9.9871759471e-01', '1.6545142956e-05']
row=['-16.0000000', '0.0490874', '9.9781493216e-01', '3.3051500271e-05']
row=['-16.0000000', '0.0736311', '9.9631097893e-01', '4.9477653557e-05']
row=['-16.0000000', '0.0981748', '9.9420658732e-01', '6.5784269579e-05']
[-16.0, -16.0, -16.0, -16.0, -16.0]
</code></pre>