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

用Python将数据作为数字存储在文件中,python,string,int,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:

我编写了一个程序,打开一个文件,逐行读取,只存储每行的第三个元素。问题是,当我将这些输出写入文件时,我需要将它们更改为字符串,这不适合我,因为我想稍后对写入的文件进行一些数学运算。仅供参考,它也不适合像这样存储它并在读取时使用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
是第一位,而不是字母
“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)

无法告诉文本文件
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)

无法告诉文本文件
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)

无法告诉文本文件
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)



文件是幼稚的,没有
int
s和
str
s的概念。阅读文件并转换为int。我想你可以试着写
chr(number)
,但我怀疑这是你想要的。如果你打算以后对数据进行操作,请使用numpy.loadtxt或类似的东西。文件总是有某种编码,可能是数字的字符串表示,固定长度的二进制字节,如一个8字节的小尾端blob,或一千个其他选择中的任何一个。您当前的解决方案是合理的,并且经常使用类似的解决方案。为什么对你不好?我还有一个问题。假设我继续使用自己的代码,并将数据存储为字符串。当我想读它时,由于我输入了“\n”,我收到了一个使用int(第行)的错误,一个文件是幼稚的,没有
int
s和
str
s的概念。阅读文件并转换为int。我想你可以试着写
chr(number)
,但我怀疑这是你想要的。如果你打算以后对数据进行操作,请使用numpy.loadtxt或类似的东西。文件总是有某种编码,可能是数字的字符串表示,固定长度的二进制字节,如一个8字节的小尾端blob,或一千个其他选择中的任何一个。您当前的解决方案是合理的,并且经常使用类似的解决方案。为什么对你不好?我还有一个问题。假设我继续使用自己的代码,并将数据存储为字符串。当我想读它时,由于我输入了“\n”,我收到了一个使用int(第行)的错误,一个文件是幼稚的,没有
int
s和
str
s的概念。阅读文件并转换为int。我想你可以试着写
chr(number)
,但我怀疑这是你想要的。如果你打算以后对数据进行操作,请使用numpy.loadtxt或类似的东西。文件总是有某种编码,可能是数字的字符串表示,固定长度的二进制字节,如一个8字节的小尾端blob,或一千个其他选择中的任何一个。您当前的解决方案是合理的,并且经常使用类似的解决方案。为什么对你不好?我还有一个问题。假设我继续使用自己的代码,并将数据存储为字符串。当我想读它时,由于我输入了“\n”,我收到了一个使用int(第行)的错误,一个文件是幼稚的,没有
int
s和
str
s的概念。阅读文件并转换为int。我想你可以试着写
chr(number)
,但我怀疑这是你想要的。如果你打算以后对数据进行操作,请使用numpy.loadtxt或类似的东西。文件总是有某种编码,可能是数字的字符串表示,固定长度的二进制字节,如一个8字节的小尾端blob,或一千个其他选择中的任何一个。您当前的解决方案是合理的,并且经常使用类似的解决方案。为什么对你不好?我还有一个问题。假设我继续使用自己的代码,并将数据存储为字符串。当我想读它时,由于我输入了“\n”,我收到了一个使用int(line)的错误,但是json是否比OP现在正在编写的单列ascii文件好?@tdelaney
json.load(fileobj)
[int(line)for line in fileobj]
。感觉我只是给了他一种不同的毒药。至少他可以选择:)我现在还有一个问题。假设我继续使用自己的代码,并将数据存储为字符串。当我想阅读时,由于我输入了“\n”,我收到了一个使用int(line)@CristopherVanPaul的错误,您不应该这样做
int
在尝试将字符串转换为整数之前,先从字符串中去除空白。@AdamSmith ValueError:int()的文本无效,以10为底:“56562719063.0\n”但是json比OP现在编写的单列ascii文件好吗?@tdelaney
json.load(fileobj)
[int(line)相比fileobj中的行]
。感觉我只是给了他一种不同的毒药。至少他可以选择:)我现在还有一个问题。假设我继续使用自己的代码,并将数据存储为字符串。当我想阅读时,由于我输入了“\n”,我收到了一个使用int(line)@CristopherVanPaul的错误,您不应该这样做
int
在试图将字符串转换为整数之前,先从字符串中去除空白。@AdamSmith ValueError:int()的文本无效,以10为底:“56562719063.0\n”但json比OP现在编写的单列ascii文件好吗?@tdelaney
json.load(fileobj)
[int(line)相比