0

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

我这里有两个 .txt 文件,一个 Example file1.txt

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

文件2.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的新文件中,并且循环与其他客户一起继续,每个客户都找到了服务,输出保存在文件3.txt

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

4

3 回答 3

1

您可以使用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()))

文件 3.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
...
于 2020-02-15T07:26:21.607 回答
0

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

例子:

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
于 2020-02-15T07:18:32.850 回答
0

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

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)
于 2020-02-15T07:26:45.417 回答