1

我有一个如下所示的数据文件:

1,100
2,200
3,-400
4,500

如您所见,每个数据点都有 2 个组件当我执行 file.readlines() 时,它们都以字符串的形式出现,例如 '1,100\n' 所以我想知道如何将它们变成整数?

4

4 回答 4

4

这是逗号分隔的数据,因此使用 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
于 2013-09-11T21:08:16.170 回答
3

逐行读取,然后拆分每一行:

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语句的优点,即使发生错误,它也会自动关闭文件。

于 2013-09-11T20:44:30.030 回答
2

你可能会这样做:

map(int, line.strip().split(','))

这就是它的作用

  1. line.strip()转换"1,100\n""1,100"
  2. line.split(',') converts“1,100” to(“1”,“100”)`
  3. map(int, ...)适用int于每个参数,并返回(1, 100)
于 2013-09-11T20:43:24.870 回答
0

我会为此使用numpy.loadtxt()

import numpy
numpy.loadtxt("yourFileName.txt", dtype=int, delimiter=",")
于 2013-09-11T21:31:00.303 回答