【发布时间】:2020-06-17 07:29:04
【问题描述】:
我还有一个问题。我以为我明白我在这个任务中做了什么,但显然没有。我们有两个 TXT 文件,我们应该定义一个接受三个参数的函数,它们都是 TXT 文件。第一个文件是这样的:
你好
谢谢(等等)
和第二个文件:
你好
感谢(等等)
我们应该定义函数,以便将这两个文件组合成一个新文件,如下所示:
你好:你好
谢谢:gracias(等等)
如果第一个和第二个文件中的项目数不一样,我们应该破坏函数并返回错误。那部分似乎工作正常,我的程序还创建了一个新的 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:”条件会创建一个空文件。我在这里遗漏了什么非常明显的事情?
【问题讨论】:
-
您已经使用 readlines 遍历了文件,因此光标位于文件末尾。使用 a 和 b 代替 fobj_1 和 fobj_2。请注意,这将显示您的代码存在不同问题,但请继续解决它们,直到没有问题为止!
标签: python dictionary text-files