关闭文件E上的I/O操作

2024-09-27 00:20:17 发布

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

所以我在写这个程序,用open()创建reads文件。当我试图运行这个程序时,会给我一个错误:ValueError:I/O操作在关闭的文件上(第18行)。在

在我看到的关于这个话题的每一个问题中,问题总是与缩进有关。IE试图操作一个未在同一循环中打开的文件。我有点生疏了我的Python,但压痕看起来很好。在

我希望有人能给它一个快速的检查,让我知道,如果压痕是错误的,或其他什么可能导致错误? 代码(错误被注释):

sourceFile = 'test.html'
serviceTarget = "Plumbers & HVAC Experts"
cityTarget = "NJ"

services = {"Plumbers", "Air Conditioning Experts", "Drain Cleaning Experts"}
cities = {"Westfield", "Scotch Plains", "Clark"}

serviceNames = {"Plumbers":"plumbers", "Air Conditioning Experts":"ac", "Drain Cleaning Experts":"drain"}
totalPages = len(services)*len(cities)

for serviceRep in services:
    for cityRep in cities:
        outFileName = cityRep + " " + serviceNames[serviceRep] + ".html"
        outFileName = outFileName.replace(" ", "_");
        print("Writing " + outFileName + "...")
        infile = open(sourceFile)
        outfile = open(outFileName, 'w')
        for line in infile:   #This is the line giving me problems
            if serviceTarget in line:
                line = line.replace(serviceTarget,serviceRep)
            if cityTarget in line:
                line = line.replace(cityTarget,cityRep)
            outfile.write(line)
            infile.close()
            outfile.close()
        totalPages -= 1; 
        print("DONE -- " + str(totalPages) + " left to go")

Tags: 文件intargetfor错误servicelineopen

热门问题