我需要这个脚本来显示每个单词出现在哪些行上。问题是我无法将行写到文档中
def WordOnLine():
file = open("tekstbestand.txt","r")
file2 = open("aantalwoorden","a")
lineN = 0
for line in file:
sent = line.split()
lineN += 1
for word in sent:
if len(word) >= 4:
if word in file2:
word = word.replace(word,word+" " +lineN + "\n")
else:
file2.append(word + " " + str(lineN) + "\n")
file.close()
file2.close()
WordOnLine()
答案 0 :(得分:0)
尝试:
file2 = open("aantalwoorden","a+")
和
file2.write(word + " " + str(lineN) + "\n")
以下是一些解释: https://www.guru99.com/reading-and-writing-files-in-python.html
答案 1 :(得分:0)
一些样式上的更改和一些更正,以使您更进一步,其中一些已经指出。如果运行的是Python 3,则可以删除语句1(从__future __ 中删除等)。在第4行,您需要打开aantalwoorden,并指定“ a +”,以便可以读取和附加文件。这将消除io.UnsupportedOperation异常。第4行还使用“ with”语句打开两个文件,将其包围的块包装在“上下文管理器”中,该文件在该块终止时将自动关闭两个文件。语句12已修改,因此,如果语句12曾经执行过,则尝试将字符串与整数连接时不会出现异常。最后,语句12是使用Python 3打印功能将输出写入file2的一种简单方法。
关于您的程序逻辑,我不声称它符合您的意图。
from __future__ import print_function #1
def WordOnLine():
with open("tekstbestand.txt","r") as file, open("aantalwoorden","a+") as file2: #4
lineN = 0
for line in file:
sent = line.split()
lineN += 1
for word in sent:
if len(word) >= 4:
if word in file2:
word = word.replace(word,word+" " +str(lineN) + "\n") #12
else:
print(word, lineN, file=file2)
WrdOnLine()