编写一个名为uniqueWords的函数,它计算了多少不同的函数 输入文件的每一行中都有单词,并写入计数 输出文件的对应行。输入文件已存在 当调用uniqueWords时。 uniqueWords创建输出文件。
输入。函数uniqueWords有两个参数:
inFile,一个字符串,是要读取的文本文件的名称。 inFile引用的文件仅包含小写字母 和空格(没有标点符号或其他特殊字符)。
outFile,一个字符串,是uniqueWords写入其输出的文件的名称。
输入文件位于当前工作目录中。独特的话应该 在该目录中创建输出文件。
输出。对于inFile的每一行,uniqueWords应该向包含单个整数的outFile写一个对应的行: 在线上的独特单词。
如果文件turn.txt的内容低于,
是时候建立一个时间来分解跳舞的时间了 哀悼时间扔石头一起收集石头的时间函数调用
uniqueWords('turn.txt', 'turnOut.txt')
应使用以下内容创建名为turnOut.txt的文件:
7 5 8
这是我到目前为止所得到的:
def uniqueWords(file_input, file_output):
for line in file_input:
words = line.split(" ")
uniqueWords = set(words)
total = len(uniqueWords)
file_output.write(str(total) + "\n")
file_input = open("turn.txt", "r")
file_output = open("turnOut.txt", "w")
uniqueWords('turn.txt', 'turnOut.txt')
代码给出了以下错误:
file_output.write(str(total)+“\ n”)AttributeError:'str'对象没有属性'write'
答案 0 :(得分:1)
您收到该错误的原因是您将字符串传递给函数。
您将文件名称传递给uniqueWords
,而不是文件本身。 open
创建一个文件对象,您可以写入该对象,因为它具有write
方法。你应该传递那个对象。正确的代码是。
def uniqueWords(file_input, file_output):
for line in file_input:
words = line.split(" ")
uniqueWords = set(words)
total = len(uniqueWords)
file_output.write(str(total) + "\n")
file_input = open("turn.txt", "r")
file_output = open("turnOut.txt", "w")
uniqueWords(file_input, file_output)
file_input.close()
file_output.close()
另外,请务必在完成后关闭打开的文件。