在Python中从文件中读取

时间:2013-03-26 16:55:59

标签: python file io

我想知道是否有人可以帮助我使用以下Python 3代码。出于某种原因,它没有做我认为它应该做的事情,我无法理解为什么。

with open("ModuleShow.txt", "w+", encoding='utf-8') as ModuleShowFile:
            if ModulesLeft == 0:
                ModuleLoaded = CommandLine[2]
                print(ModuleLoaded)
            else:
                ModuleLoaded = ModuleToLoad[0]
                ModuleToLoad.pop(0)
                ModulesLeft = ModulesLeft - 1
                #            ModuleFile.write("\n" + ModuleLoaded)                                                    
                #            CommandsFile.write("module show" + ModuleLoaded)                                         
            output = subprocess.Popen(["bash", "-ci", "module show " + ModuleLoaded], stderr=ModuleShowFile)

#            with open("ModuleShow.txt", "r", encoding='utf-8') as ModuleShowFile:                                        

            print(ModuleShowFile.read())
            for ModuleFileLine in ModuleShowFile:
                FileLine = ModuleFileLine.split(" ")

                print(FileLine[0])
                if FileLine[0] == "prepend-path":
                    print(FileLine[0])
                    if FileLine[1] == "PATH":
                        ModulePathFile.write(FileLine[2] + " " + ModuleLoaded + "\n")
                    elif FileLine[0] == "module":
                        ModuleToLoad.append(FileLine[2])
                        ModulesLeft = ModulesLeft + 1

所以我在上面的代码中所做的是将信息写入名为ModuleShow.txt的文件,然后解析该信息并将解析后的信息写入名为ModulePath.txt的文件中,之前我打开了ModulePath.txt,但是我没有包含那部分代码,因为我认为它与我遇到的问题无关。

所以基本上,当我运行我的脚本时,内容被写入文件,但是当我阅读内容时,我什么也得不到。例如,我尝试使用“print(ModuleShowFile.read())”,但是没有打印到文件是用里面的内容创建的。我尝试了两个“open()”行,一个用于写入,另一个用于阅读,但它仍然没有解决问题。希望这很简单,我为长篇大论道歉。我非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

你甚至需要编写ModuleShow.txt文件吗?或者你可以把条目保存在列表中吗?

如果您确实需要再次阅读它们,请先关闭文件,如下所示:

with open("ModuleShow.txt", "w+", encoding='utf-8') as ModuleShowFile:
    # ... whatever (I'm assuming you're writing to the file here)

# now the file is closed
with open("ModuleShow.txt", "r", encoding='utf-8') as ModuleShowFile:
    for ModuleFileLine in ModuleShowFile:
        # ... now you can read each line