我想知道是否有人可以帮助我使用以下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()”行,一个用于写入,另一个用于阅读,但它仍然没有解决问题。希望这很简单,我为长篇大论道歉。我非常感谢任何帮助。谢谢。
答案 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