Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何像iteraction一样逐行返回变量,并从第1行开始获取值,然后在文件长度结束时停止?_Python - Fatal编程技术网

Python 如何像iteraction一样逐行返回变量,并从第1行开始获取值,然后在文件长度结束时停止?

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

我有这个文件(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 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
处理处理后的数据。这是您需要调用函数的地方。然后他将结果写入输出文件。然后继续下一行,直到文件结束。这就是您想要的。