【问题标题】:loop in python for two text files在python中循环两个文本文件
【发布时间】:2020-05-30 20:40:57
【问题描述】:

这是我第一次来这里,我希望能得到您的帮助。 我是 python 新手,我需要你的帮助

我有两个 .txt 文件 这里是一个例子 文件1.txt

customer1.com
customer2.com
customer3.com
customer4.com
customer5.com
customer6.com
customer7.com
customer8.com
customer9.com

file2.txt

service1
service2
service3

我想在 file1.txt 上循环 file2.txt => 像下面的例子

customer1.com/service1
customer1.com/service2  
customer1.com/service3

customer2.com/service1
customer2.com/service2  
customer2.com/service3

customer3.com/service1
customer3.com/service2  
customer3.com/service3

直到 file1.txt 完成。

我还需要做 IF 语句 例如,假设客户编号 3 的服务编号为 2(我的意思是找到文件)

customer3.com/service2 [找到服务]

我需要 customer3 的循环来停止寻找服务并将输出 (customer3.com/service2) 保存在一个名为 file3.txt 的新文件中 并且循环与其他客户一起继续,每个客户都找到了服务,输出保存在 file3.txt 中

我希望你明白我的意思。 谢谢。

【问题讨论】:

  • 您想在两个列表上执行笛卡尔积,并在条件上执行停止条件。

标签: python


【解决方案1】:

试试这个逐行阅读并使用相应的。

file1 = open('file1.txt', 'r')
file2 = open('file2.txt', 'r')
lines1 = file1.readlines()
lines2 = file2.readlines()
for line_from_1 in lines1:
    for line_from_2 in lines2:
        print(line_from_1 + '/' + line_from_2)

【讨论】:

    【解决方案2】:

    您可以使用itertools.product 从每个文件中获取行的笛卡尔积,以获取每个 URL 组合:

    from itertools import product
    
    with open("file1.txt") as f1, open("file2.txt") as f2, open(
        "file3.txt", mode="w"
    ) as out:
        for x, y in product(f1, f2):
            out.write("%s/%s\n" % (x.strip(), y.strip()))
    

    file3.txt

    customer1.com/service1
    customer1.com/service2
    customer1.com/service3
    customer2.com/service1
    customer2.com/service2
    customer2.com/service3
    customer3.com/service1
    customer3.com/service2
    ...
    

    【讨论】:

      【解决方案3】:

      循环任务很简单。您需要读取每个文件并将数据保存为列表。然后用该循环顺序编写一个文件。见例子。但我不明白那条黑线和 service found 逻辑。是一般。更具体。

      例子:

      list1, list2 = [], []
      
      with open("file1.txt", "r") as f1:
          line = f1.readline()
          while line:
              line = line.strip()
              list1.append(line)
              line = f1.readline()
      with open("file2.txt", "r") as f2:
          line = f2.readline()
          while line:
              line = line.strip()
              list2.append(line)
              line = f2.readline()
      with open("file3.txt", "w") as f3:
          for i in list1:
              for j in list2:
                  f3.write(f"{i}/{j}\n")
              f3.write("\n") # just for that black line
      

      【讨论】:

      • 我正在进行项目以在文本文件中查找单词“FinedMe”。例如:customer1.com/service1.txt customer1.com/service2.txt customer1.com/service3.txt customer2.com/service1.txt customer2.com/service2.txt customer2.com/service3.txt customer3.com/service1 .txt customer3.com/service2.txt customer3.com/service3.txt 让我们说出以下路径中的单词,例如 customer3.com/service2.txt [找到的单词] customer1.com/service3.txt [找到的单词] customer2。 com/service1.txt [word found] 这就是为什么我也在寻找 IF 语句。你找到我了吗?
      • @Deller 所以你想在所有文件中找到一个词?喜欢所有文件中的搜索词?很难理解,因为在这种情况下我不理解一般解释。用真实的例子打我。就像实际问题中的 1-2 个示例一样...
      • 我将创建一个新主题并回复您在那里回答。非常感谢您的帮助先生。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-17
      • 2018-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多