如何读取文本文件中的值并将其存储在python

时间:2016-01-28 00:41:55

标签: python text-files

我有一个文本文件,如下所示:

a,1234                        
b,34322      
c,9439   
d,132431

我想编写一个只读取逗号后面的数字的代码。例如,在第一行中,代码只需要读取1234。

然后,该数字(1234)需要在等式 y = 10 + n 中使用,其中 n 是数字1234.我想读取每个数字来自每一行并向我提供结果,并将这些结果用于输入图表,图表也需要在同一程序中编码并保存为图像。

我不知道如何解决这个问题。我所做的只是输入以下代码,它从文本文件中读取这些值并将它们存储在一个数组中。我不喜欢那样,因为那只是在一个阵列中。我真的需要帮助。

a1 = []

with open('project.txt') as f:
    for line in f:
        a1.append(line)
print (a1)

4 个答案:

答案 0 :(得分:0)

试试这个:

a1 = []

with open('project.txt') as f:
    for line in f:
        before, sep, after = line.partition(',')        
        a1.append(after)
print (a1)

答案 1 :(得分:0)

试试这个:     a1 = []

with open('project.txt') as f:
    for line in f:
        before, sep, after = line.partition(',')   
        n = after
        y = 10 + n
        a1.append(y)
print (a1)

答案 2 :(得分:0)

试试这个, pandas库对数据集操作非常有用。输出采用表格格式,现在更容易绘制。

import pandas as pd

#read file
data = pd.read_csv('data.txt', sep=",")

#do your calculation
data['y'] = 10 + data['n']

<强>输出

>>> data
  Item       n       y
0    a    1234    1244
1    b   34322   34332
2    c    9439    9449
3    d  132431  132441

#do your plotting below...

答案 3 :(得分:0)

你开始很好。你的代码:

a1 = []

with open('project.txt') as f:
    for line in f:
        a1.append(line)
print(a1)

可以演变为split行,只获得第二项([1]):

a1 = []

with open('project.txt') as f:
    for line in f:
        a1.append(line.split(',')[1])
print(a1)

您现在可以将其转换为数字(考虑它们是整数):

a1 = []

with open('project.txt') as f:
    for line in f:
        a1.append(int(line.split(',')[1]))
print(a1)

最后,这一切都可以是列表理解:

with open('project.txt') as f:
    a1 = [int(line.split(',')[1]) for line in f]
print(a1)

我希望我帮助过你。有任何疑问,请问我。