python - 在分配唯一变量时读取多行的最 Pythonic 方式是什么?

标签 python

例如:

    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。

最佳答案

你可以这样做:

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

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

def get_values(input_file):
    with open(input_file) as f:
        info = [line.strip() for line in f]
    return info

关于python - 在分配唯一变量时读取多行的最 Pythonic 方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15848238/

相关文章:

Python - 将 24 个字符的人类可读日期格式(如 'Tue May 16 04:10:55 PDT 2017')转换为 yyyy-mm-dd?

python - Numba 的 jit 无法编译具有另一个函数作为输入的函数

python - 将 hdf5 matlab 字符串加载到 Python 中

php - 如何创建 pyserial 网络服务?

python - 是否可以在 Pandas 中将 searchsorted 与 MultiIndex 索引一起使用?

python - 从 django webapp 中的模块导入函数时出错

python - 如何将数据框的日期和时间列转换为 Pandas 的日期时间格式?

python - 根据单行中的频率将分类变量转换为数字

键上 dict 正则表达式的 Python dict

python - 自动将数据从 s3 批量加载到 Aurora MySQL RDS 实例