【问题标题】:How to read variables line by line from text file?如何从文本文件中逐行读取变量?
【发布时间】:2020-05-28 01:11:43
【问题描述】:

根据 cmets 更新

我有一个包含变量列表的 txt 文件(分隔符可以是任何东西 - 我使用逗号进行说明)

URL, filename, folder
URL, filename, folder  
URL, filename, folder

我有一些代码可以处理变量 URL、文件名和文件夹并写入数据库。我想遍历每一行并随时处理变量。比如

read variables URL, filename, folder in first line 
process
read variables URL, filename, folder in second line 
process
etc

似乎有很多示例可以读取和显示 txt 文件中的行项目,但我很难找到一个示例来读取一行,使用行中的这些变量处理一些代码,然后循环到下一行。

根据下面的答案更新了代码

with open(r"F:\Python\test.txt", "r") as inputfile:
for line in inputfile:
    URL, filename, folder = line.rstrip('\n').split(',')
 <rest of code>

脚本使用文本文件第 1 行中的变量运行,但不会循环到第 2 行并处理第二组(或第三组等)变量。

【问题讨论】:

  • 你能举个具体的例子吗?即输入,所需的输出等。我对“变量”的含义感到困惑。通常文件被视为字符串,所以你的意思是'A', 'B', 'C'?还是他们代表实际值,例如a, b, c = parse(line),其中parse 是提取值的函数?请edit澄清。

标签: python python-3.x file-io


【解决方案1】:

如果我们假设您为每一行提出的结构:URL, filename, folder,您可以一次性获取所有 3 个变量:

with open('my_file.txt', 'r') as inputfile:
    for line in inputfile:
        url, filename, folder = line.rstrip('\n').split(', ')
        db.insert(url, filename, folder) # Or other command as needed

请注意,您使用逗号加空格分隔line.split(', '),因为您的输入文件使用逗号加空格分隔字段。如果它真的只是逗号分隔,您可以从split 函数调用中取出空格。

【讨论】:

  • 太棒了!第一行的工作也是如此,输出如预期的那样,但它没有循环到第二行。我显然错过了一些非常简单的东西......
  • 你的输入文件是普通的文本文件吗?您使用的是我上面写的确切代码吗?如果没有,请显示您的代码。我只是将此代码与 print() 而不是 db.insert 语句一起使用,并且所有行都被打印了。
  • 输入文件为标准txt文件。代码已在我上面的问题中更新。打印显示变量的第一行,因此假设读取正确。
  • 您似乎没有将for 循环缩进到with 文件上下文中。所以缩进with下的行,你应该很好。请记住,python 使用缩进来指示范围!
【解决方案2】:

首先,我假设您所说的“变量”是文件中的文本,以逗号分隔。如果是这种情况,那么这应该可以:

with open('file_name.txt', 'r') as file:
    for line in file:
        for item in line.split(','):
            # do something with each item here

请记住,这些项目将是字符串

已更新以反映示例文件中的更改

【讨论】:

    【解决方案3】:

    感谢大家的帮助。根据 Sam 和 Tim 代码,我解决了问题

    def code():
    
    with open(r"F:\Python\test.txt", "r") as inputfile:
        for line in inputfile:
            URL, filename, folder = line.rstrip('\n').split(',')
            code()
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 2022-11-05
    • 1970-01-01
    • 2011-12-18
    相关资源
    最近更新 更多