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())」を使用しようとしましたが、何も印刷されず、内容を含むファイルが作成されます。書き込み用と読み取り用の 2 つの「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 に答える