我有一个如下所示的数据文件:
1,100
2,200
3,-400
4,500
如您所见,每个数据点都有 2 个组件当我执行 file.readlines() 时,它们都以字符串的形式出现,例如 '1,100\n' 所以我想知道如何将它们变成整数?
这是逗号分隔的数据,因此使用 csv 模块是一个好方法。
提取字符串数据的简单版本
import csv
with open('data.csv', 'r') as f:
reader = csv.reader(f)
for a, b in reader:
print a, b
或使用 Thomas 将数据转换为整数的方法
import csv
with open('data.csv', 'r') as f:
reader = csv.reader(f)
for line in reader:
a, b = map(int, line)
print a, b
逐行读取,然后拆分每一行:
with open('file.txt', 'r') as f:
for line in f:
a, b = [int(x) for x in line.split(',')]
# here you can use a and b as numbers
以上具有使用with
语句的优点,即使发生错误,它也会自动关闭文件。
你可能会这样做:
map(int, line.strip().split(','))
这就是它的作用
line.strip()
转换"1,100\n"
为"1,100"
line.split(',') converts
“1,100” to
(“1”,“100”)`map(int, ...)
适用int
于每个参数,并返回(1, 100)
我会为此使用numpy.loadtxt():
import numpy
numpy.loadtxt("yourFileName.txt", dtype=int, delimiter=",")