0

我想知道是否有人可以帮助我使用以下 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())”,但没有打印任何内容,但文件是使用里面的内容创建的。我尝试了两条“with open()”行,一条用于写作,另一条用于阅读,但仍然没有解决问题。希望这很简单,我为这篇长文道歉。我将不胜感激任何帮助。谢谢你。

4

1 回答 1

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
于 2013-03-26T17:05:23.570 回答