将数据作为数字存储在Python中的文件中

时间:2015-01-31 00:03:37

标签: python string int

我编写了一个程序,它打开一个文件并逐行读取并存储每行的第三个元素。问题是,当我将这些输出写入文件时,我需要将它们更改为不适合我的字符串,因为我希望稍后对写入的文件进行一些数学运算。仅供参考,它也不适合像这样存储它并在阅读时使用int()。

有人可以帮我解决这个问题吗?

with open("/home/test1_to_write", "w") as g:
    with open("/home/test1_to_read", 'r') as f:
        for line in f:
            a=line.split()
            number = int(a[3])
            g.write(str(number)+'\n')

g.close()

1 个答案:

答案 0 :(得分:3)

没有办法告诉文本文件1是第一个而不是字母"1"。如果您需要,请考虑将整个内容存储为列表,而不是使用某种串行格式,例如: JSON:

import json

with open("/home/test1_to_write.json", 'w') as outfile:
    with open("/home/test1_to_read", 'r') as infile:
        data = [int(line.split()[3]) for line in infile]
        json.dump(data, outfile)

然后您可以使用以下方式加载数据:

with open("/home/test1_to_write.json", "r") as infile:
    read_data = json.load(infile)