Python 我如何读取文件中的特定4位数字,然后移到另一行并执行相同的操作,依此类推
所以我有个问题需要解决。我有一个类似以下内容的文件: 11-08-2012;1485;10184;7,53;31;706;227;29;6.1102 12-08-2012;2531;10272;7,59;25;695;222;26;22;1234 13-08-2012;1800;13418;8,66;46;714;203;50;6.0757 14-08-2012;2009;11237;9,43;81;655;246;49;7.1783年 我应该能够阅读“1485”,然后是“2531”部分,然后是“1800”部分,一直读到文件的末尾,最后总结它们。我该怎么做?我在这篇文章下面写下了我是如何用while来解决这个问题的。但我似乎对这件事迷茫了。有人能帮忙吗 尽管如此:Python 我如何读取文件中的特定4位数字,然后移到另一行并执行相同的操作,依此类推,python,line,readline,readlines,Python,Line,Readline,Readlines,所以我有个问题需要解决。我有一个类似以下内容的文件: 11-08-2012;1485;10184;7,53;31;706;227;29;6.1102 12-08-2012;2531;10272;7,59;25;695;222;26;22;1234 13-08-2012;1800;13418;8,66;46;714;203;50;6.0757 14-08-2012;2009;11237;9,43;81;655;246;49;7.1783年 我应该能够阅读“1485”,然后是“2531”部分,然后是
f.seek(12)
text=f.read(4)
text=f.readline()
if(text==""):
break
return text
有很多方法可以做到这一点,包括
numpy
、pandas
、简单的协同程序
等等。我添加了一个最接近您的方法
total = 0
with open('exmplefile.txt','r') as f:
for line in f:
elements = line.split(';')
num_of_interest = int(elements[1])
# you can add a print if you want
total += num_of_interest
print(total)
试试这个
mylist = []
for string in file:
mynum = string.split(';')[1]
mylist.append(mynum)
sum([int(i) for i in mylist])
此解决方案适用于4位数字不是数组中第二项的情况
打开(“路径/到/文件”)作为f:
f1=f.读线()
总和=0
对于f1中的行:
linearray=line.split(“;”)
对于LineArray中的数字:
如果len(digit.strip())==4,digit.strip().isnumeric():
总和+=int(数字)
此解决方案是通过获取公共项的第一个和第二个索引,在本例中为代码>
with open(filename,'r') as file:
file_list = file.readlines()
sum = 0
for line in file_list:
loc = line.find(';')
first_loc = loc + 1
last_loc = loc +line[loc+1:].find(';')+1
sum = sum + int(line[first_loc:last_loc])
print(sum)
Cosman,with语法是一个上下文管理器,用于确保在打开文件以处理其内容后关闭该文件。对于代码中的with line语句,可以替换为f=open('path/to/file')
并取消块的缩进。但是,使用此样式时,必须在代码末尾调用f.close()