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