2

例如:

    def get_values(input_file):
       f = open(input_file)
       key = f.readline().strip()
       value = f.readline().strip()
       name = f.readline().strip()
       password = f.readline().strip()
       return key, value, name, password

其中输入文件只是一个包含 4 行信息的 txt。

4

3 回答 3

3

你可以这样做:

key, value, name, password = (line.strip() for line in f)

此外,在您的代码中,您似乎没有在提取信息后关闭文件。这可能会导致一些问题。您可以使用该语句,也可以f.close()使用该with语句,这通常被认为更“pythonic”。

def get_values(input_file):
    with open(input_file) as f:
        key, value, name, password = (line.strip() for line in f)
    return key, value, name, password

为了进一步简化您的函数,我们实际上不需要将值绑定到各个名称,因为我们不会在函数中对它们做任何事情。我们可以简单地使用一个列表。

def get_values(input_file):
    with open(input_file) as f:
        info = [line.strip() for line in f]
    return info
于 2013-04-06T07:31:30.660 回答
3
import itertools

with open('data.txt') as f:
    key, value, name, password = (line.strip() for line in itertools.islice(f, 4))
于 2013-04-06T07:34:05.670 回答
0
with open(input_file) as in_f:
    key, value, name, password = [line.strip() for idx, line in enumerate(in_f) if idx <= 3]
于 2013-04-06T07:33:43.803 回答