Python 如何像iteraction一样逐行返回变量,并从第1行开始获取值,然后在文件长度结束时停止?
我有这个文件(pruebe.txt),并且有以下信息:Python 如何像iteraction一样逐行返回变量,并从第1行开始获取值,然后在文件长度结束时停止?,python,Python,我有这个文件(pruebe.txt),并且有以下信息: (1, 1) (15, 20) (13, 21) (4, 3) (2, 26) 我需要这样做: 1.-逐行读取函数中类似字符串的元素(a,b),然后返回另一行,这样,当文件长度结束时停止 我的代码是: class function(loop): def re_loops(l,foo=2): out = [] last = l[0] for x in l: if
(1, 1)
(15, 20)
(13, 21)
(4, 3)
(2, 26)
我需要这样做:
1.-逐行读取函数中类似字符串的元素(a,b),然后返回另一行,这样,当文件长度结束时停止
我的代码是:
class function(loop):
def re_loops(l,foo=2):
out = []
last = l[0]
for x in l:
if x-last > foo:
yield out
out = []
out.append(x)
last = x
c=[int(e) for e in last]
a, b = c
yield out
return
# This routine picks the results to be refined by loop
def select_loop(self):
with open('list.log') as f:
# insertion
return selection(self.residue_range(a, b)
我想要这样的东西:
(a,b)=(1,1)第1行
根据我的职责替换这些值:
返回选择(自残留范围(a、b)
给出结果
然后返回第2行的值(a,b)=(15,20)
给出结果
当我的文件长度=0时停止
对于此任务,我可以在代码中更改什么?
有人能帮我一下plis吗这里是Python中典型的逐行流程的一个高级草图:
with open('file_path', 'r') as f, open('logfile.txt', 'w') as logfile:
for line in f:
# process each line here
在这种方法下,您将按顺序处理每一行,在处理最后一行之后,处理将停止(并且文件将被关闭)
更新:提供更多帮助
import ast
with open('file_path', 'r') as f, open('logfile.txt', 'w') as logfile:
for line in f:
# easy/clean way to extract x and y vals
x, y = ast.literal_eval(line.strip())
# easy way to find larger of x or y
largest = max([x, y])
# write out larger score to log
logfile.writeline(largest + '\n')
# and honestly, I'm not sure what else you're doing with each line
您是否已经意识到,您可以像迭代列表/数组一样迭代文件中的行?这就是您希望看到的示例?是的,但我不知道如何进行。我已经看到了一些示例,但没有用我的代码运行它。我想看看我在这方面的错误。您知道一些可以提供帮助的模块、类或其他类型吗me?当然……发布了。很高兴更新它以解决特定的困难领域。@dylrei我编写代码是逐行读取,但同时读取所有行。我需要读取一行(例如,第1行)并运行函数,最后,返回第2行,然后再次执行该过程,因此结束包含每个值(pruebe.txt)的文件的长度。我能做什么?在pruebe.txt中,第二行是
(15,20)
什么是15
,什么是20
?你想用这些做什么?我做了代码来逐行读取,但同时读取所有行。我需要读取一行(例如,第1行)然后运行函数,最后返回第2行,然后再次执行该过程,因此结束包含每个值(pruebe.txt)的文件的长度。我能做什么?上面的代码确实逐行处理文件。我还更新了代码,以显示您如何同时处理输入和输出文件。@TereHs添加了一些额外的帮助。我不确定我是否确切理解您代码的目标,但如果您想在一个文件中翻阅x,y分数并将其写入另一个文件中呃,这样就可以了。@TereHs老实说,我没有足够的带宽来弄清楚你想用代码做什么。你不太可能需要超过10行,不管是什么。试着打开一个Python解释器会话并输入我的内容。我想你可能会惊讶于你的任务可能有多么简单。@TereHs:你应该后退一步,暂停并查看此代码,了解它的功能并在代码中实现。@dylrei同时打开两个文件,一个输入一个输出,并从输入文件中一次读取一行,然后调用函数ast.literal\u eval()
处理行和max
处理处理后的数据。这是您需要调用函数的地方。然后他将结果写入输出文件。然后继续下一行,直到文件结束。这就是您想要的。