定义一个函数,该函数使用Python中其他两个文本文件的字符串创建文本文件

定义一个函数,该函数使用Python中其他两个文本文件的字符串创建文本文件,python,dictionary,text-files,Python,Dictionary,Text Files,我还有一个问题。我以为我明白我在这项任务中做了什么,但显然不明白。我们有两个TXT文件,我们应该定义一个包含三个参数的函数,所有参数都是TXT文件。第一个文件如下所示: 你好 谢谢(等) 第二个文件: 你好 格雷西亚斯(等) 我们应该定义函数,以便将这两个文件组成一个新文件,如下所示: 你好:你好 谢谢:格雷西亚斯(等) 如果第一个和第二个文件中的项数不相同,我们应该中断函数并返回一个错误。这部分似乎工作正常,我的程序也创建了一个新的TXT文件,但它总是空的。你自己看看: def create_

我还有一个问题。我以为我明白我在这项任务中做了什么,但显然不明白。我们有两个TXT文件,我们应该定义一个包含三个参数的函数,所有参数都是TXT文件。第一个文件如下所示:

你好
谢谢(等)

第二个文件:

你好
格雷西亚斯(等)

我们应该定义函数,以便将这两个文件组成一个新文件,如下所示:

你好:你好
谢谢:格雷西亚斯(等)

如果第一个和第二个文件中的项数不相同,我们应该中断函数并返回一个错误。这部分似乎工作正常,我的程序也创建了一个新的TXT文件,但它总是空的。你自己看看:

def create_dictionary(file1, file2, newfile):
    with open(file1, encoding='utf-8') as fobj_1:
        with open(file2, encoding='utf-8') as fobj_2:
            a = fobj_1.readlines()
            b = fobj_2.readlines()
            if len(a) != len(b):
                return "The input files are not compatible."
            else:
                with open(newfile, 'w', encoding='utf-8') as fobj_new:
                    for line1 in fobj_1:
                        out1 = line1.rstrip()
                        for line2 in fobj_2:
                            out2 = line2.rstrip()
                        fobj_new.write(out1 + ":" + out2 + "\n")
                return "Successfully created file."

对于两个不匹配的文件,程序运行正常,但“else:”条件会创建一个空文件。我在这里遗漏了什么非常明显的东西?

在输入文件上循环会耗尽它们的数据。再次尝试
读取
需要倒带或关闭并重新打开文件。但是您已经在内存中的变量
a
b
中有了数据;绕过去

对于长度(a)中的ind:
first=a[ind].strip()
second=b[ind].strip()
out1.write(f'{first}:{second}\n')

还要注意如何有一个单循环;您的尝试将在
a
中写入第一个元素,然后依次写入
b
中的每个元素,然后在
a
中写入第二个元素,然后再写入
b
中的每个元素,等等。

您已经用读取行遍历了文件,因此光标位于文件的末尾。使用a和b代替fobj_1和fobj_2。请注意,这将向您显示代码中的不同问题,但请继续解决这些问题,直到没有问题为止!