如何从文本文件中读取值并将其存储在python中的公式中
我有一个文本文件,看起来像下面的文本:如何从文本文件中读取值并将其存储在python中的公式中,python,text-files,Python,Text Files,我有一个文本文件,看起来像下面的文本: a,1234 b,34322 c,9439 d,132431 我想写一个代码,只读取逗号后面的数字。例如,在第一行中,代码只需要读取1234 然后,该数字(1234)需要在方程y=10+n中使用,其中n是该数字1234。我想从每一行中读取每一个数字,并将结果提供给我,然后将这些结果输入到图表中,图表也需要在同一个程序中编码并保存为图像 我不知道如何处理这个问题。我所做的只是键入以下代码,从
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)
试试这个:
a1 = []
with open('project.txt') as f:
for line in f:
before, sep, after = line.partition(',')
a1.append(after)
print (a1)
试试这个:
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)
试试这个,
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...
你开局不错。您的代码:
a1 = []
with open('project.txt') as f:
for line in f:
a1.append(line)
print(a1)
可以演变为拆分行并仅获取第二项([1]
):
现在可以将其强制转换为数字(考虑它们是整数):
最后,它可以是一个列表:
with open('project.txt') as f:
a1 = [int(line.split(',')[1]) for line in f]
print(a1)
我希望我帮助过你。如果有任何疑问,请咨询我。您可以用逗号分隔这行,然后再转换数字。请进行额外的独立研究。专注于
split()
string方法。它确实消除了逗号和逗号之前的所有内容。现在,我如何使用这些值,将它们输入公式,并在表格中显示这些结果?您是否可以帮助我回答另一个问题:实际上它应该是n=float(后面),因为数字是文本。您可以编辑其他答案,而不是回答两个问题。昨天我刚开始回答这里的几个问题。如果我只想显示和存储第二列中的每个数字,那么如果在代码中的任何地方我想用这个数字进行加法、减法、乘法、除法或其他任何函数,我可以做什么呢。例如:如果我把第一个数字1234加上60,那么我应该可以说出代码中的任何地方;60+p,假设1234被分配给p。我不知道我是否理解您的意思…您希望存储检索到的值以供将来在同一执行中使用…是这样吗?您可以将a1
设置为模块属性,或者最好将其作为参数传递或从函数返回。因此,您的p
是a1
的一个或每个元素,就像a1[0]
或a1中p的一样。按照我的初始代码,当我输入以下代码时,我得到的第二列的格式与文本文件中的格式完全相同,这本身就很好为p+1;print(p)
该列中的所有数字都是四个网球。问题是我得把所有的网球都带在一起。我不想那样。我应该能够挑选出任何我想要的网球,并把它扔到任何我想要的地方。有道理吗?我想我明白了。如果我有任何问题,我会发布回复。
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)