【问题标题】:How to open three files in loop, in python如何在python中循环打开三个文件
【发布时间】:2016-05-19 14:52:13
【问题描述】:

如何打开三个内部具有相同数据序列的文件,并且所有这些文件数据都应该在一个循环中运行。该循环将捕获文件中的值。首先读取第一个文件数据,然后读取第二个文件,然后读取第三个文件。如何在我现有的代码中实现这一点...

def memberStatus():
 inputFile = open('Members.txt', 'r')
 inputFile = open('Members1.txt', 'r')
 inputFile = open('Members2.txt', 'r')
 with inputFile as myFile:
    for number, line in enumerate(myFile):
        line=(line.rstrip()).split()
        rawList=[]
        rawList.append(line)
        print("raw list : ", rawList)
        intLine1 = [str(elem) for elem in rawList]
        intLine1 = ''.join(intLine1)
        AgeItem = intLine1[2:4]
        winLoosItem = intLine1[8:9]
        logInItem = intLine1[13:16]
        GenderItem = intLine1[20:26]
        incomeItem = intLine1[30:33]

这些是应该在“with inputFile as myFile:”循环中运行的三个文件

  • Members.txt
  • Members1.txt
  • Members2.txt

【问题讨论】:

    标签: python file loops


    【解决方案1】:

    这样做:

    inputFile = open('Members.txt', 'r')
    inputFile = open('Members1.txt', 'r')
    inputFile = open('Members2.txt', 'r')
    

    您每次只需将 inputFile 名称重新分配给其他文件。

    许多可能的方法之一是例如将文件名放入列表中,然后遍历列表。

     inputFiles = ['Members.txt', 'Members1.txt', 'Members2.txt']
     for membersFile in inputFiles:
         myFile = open(membersFile, 'r')
         # And rest of code goes in here.
         myFile.close()
    

    编辑: @SergeBallesta 是对的,您通常宁愿使用 with 语句对文件进行操作,因为它非常方便且易于使用,在此示例中它会是这样的:

     inputFiles = ['Members.txt', 'Members1.txt', 'Members2.txt']
     for membersFile in inputFiles:
         with open(membersFile, 'r') as myFile:
             # And rest of code goes in here.
    

    一个人可能应该自己决定什么对他和他/她的眼睛更方便。

    【讨论】:

    • with open(membersFile, 'r') as myFile: 至少可以确保在尝试处理下一个文件之间完全关闭每个文件...
    • @SergeBallesta 是的,但是您所要做的就是在迭代结束时使用close 方法并使用with 语句创建额外的缩进级别并牺牲可读性imo 并不是真的在这种简单的情况下值得。
    • 谢谢@Peter Nimroot,它的工作.. 我觉得我太愚蠢了,我没有注意到这个简单的解决方案。谢谢你
    【解决方案2】:
    def memberStatus():
      for name in ['Members.txt', 'Members1.txt', 'Members2.txt']:
        with open(name, 'r') as myFile:
          # do stuff
    

    【讨论】:

      猜你喜欢
      • 2020-01-26
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 1970-01-01
      • 1970-01-01
      • 2019-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多