无法将行写入文档

2024-09-29 22:32:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要这个脚本来显示每个单词出现在哪一行。问题是我无法在文档中写入行

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()

Tags: in文档脚本forcloseiflineopen
2条回答

一些风格上的改变和一些修正让你更进一步,其中有几个已经被指出了。如果您运行的是Python 3,那么可以删除语句1(来自uuuu future_uuu等)。在第4行,您需要打开指定为“a+”的aantalworden,以便可以读取和追加文件。这将消除io.UnsupportdOperation异常。第4行还使用“with”语句打开两个文件,将其包含的块包装在“上下文管理器”中,该“上下文管理器”将在该块终止时自动关闭两个文件。对语句12进行了修改,以便在执行该语句时,在尝试将字符串与整数连接时不会出现异常。最后,语句12是使用python3print函数将输出写入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()

尝试:

file2 = open("aantalwoorden","a+")

file2.write(word + " " + str(lineN) + "\n")

以下是一些解释: https://www.guru99.com/reading-and-writing-files-in-python.html

相关问题 更多 >

    热门问题