python读取nc文件并转换成csv_python3使用类型转换读取csv文件
我有兩個問題:
a)Python csv模塊無法正確處理特定csv文件
我在database.csv中有以下數據"AAAAAAAA" , 5.4817, 0.0000, 0.0000, 0.0000, 65.8370
"n,m-BBBBBBBBB" , 1.7897, 675.3787, 1234.7865, 47.0000, 42.0070
請注意,雙引號和逗號之間有空格。
我使用下面的腳本來讀取文件,第一列將被解碼為"AAAAAAAA ",而不是{}
^{pr2}$
輸出是['AAAAAAAA ', ' 5.4817', ' 0.0000', ' 0.0000', ' 0.0000', ' 65.8370']
['n,m-BBBBBBBBB ', ' 1.7897', ' 675.3787', ' 1234.7865', ' 47.0000', ' 42.0070']
為了去掉空白,我這樣做import csv
def read_csv_data(path):
col_type = [str, float, float, float, float, float]
with open(path, 'rU') as f:
f_csv = csv.reader(f)
for row in f_csv:
row = tuple(cast(val.strip()) for cast, val in zip(col_type, row))
yield row
for row in read_csv_data('database.csv'):
print(row)
輸出現在是('AAAAAAAA', 5.4817, 0.0, 0.0, 0.0, 65.8370)
('n,m-BBBBBBBBB', 1.7897, 675.3787, 1234.7865, 47.0, 42.007)
b)使用namedtuple將csv數據讀入內存
對于相同的csv文件database.csv,我使用另一個腳本:import csv
from collections import namedtuple
def read_csv_data(path):
col_type = [str, float, float, float, float, float]
Gas = namedtuple("Gas", ["gas", "sf", "h1", "h2", "h3", "m"])
with open(path, 'rU') as f:
f_csv = csv.reader(f)
for row in f_csv:
row = list(cast(val.strip()) for cast, val in zip(col_type, row))
for row2 in map(Gas._make, row):
yield row2
for row in read_csv_data('database.csv'):
print(row)
錯誤是Traceback (most recent call last):
File "read_dict.py", line 17, in
for row in read_csv_data('database.csv'):
File "read_dict.py", line 13, in read_csv_data
for row2 in map(Gas._make, row):
File "", line 21, in _make
TypeError: Expected 6 arguments, got 8
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的python读取nc文件并转换成csv_python3使用类型转换读取csv文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 双色球蓝号几个红球中才有奖
- 下一篇: ios 旋转加载gif_加载GIF动画方