takumitakumigreen
@takumitakumigreen

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

githubでテキストファイルを保存

githubでテキストファイルを保存

スクリーンショット 2023-08-10 095958.png
上のindex.htmlで書き込まれた内容をtestfile.txtに保存したいです。

該当するソースコード

    <py-script>    

      def coment_save():
        coment = document.getElementById("text").value
        with open("testfile.txt","w") as f:
          f.write(coment)

    </py-script>

自分で試したこと

textareaで書いたことを上記のコードでtestfile.txtに保存したのですが上の写真のtestfile.txtには何も書き込まれていませんでした。

0

1Answer

長くなったので先に結論だけ:不可能です。

  <py-script>
    import os
    
    dir_path = os.getcwd()
    print('カレントディレクトリ:' + dir_path)
    print('--- 書き込み前 ---')
    for file in os.listdir(dir_path):
      print(os.path.join(dir_path, file))
    
    with open("testfile.txt","w") as f:
      f.write("テキストの中身だよ~~")
    
    print('--- 書き込み後 ---')
    for file in os.listdir(dir_path):
      print(os.path.join(dir_path, file))
  </py-script>

こんな感じのスクリプトを走らせてみると、おそらく /home/pyodide というパスが出力されるはずです。
PyScript(というかPyodide)の機能の一部として上記のvirtual file system(多分オンメモリ)上でファイル作成などの操作が行えるとのこと。オンメモリなので、testfile.txtを作成してそのファイルの中身がちゃんと読めていても、画面リロードしたら無くなってまた一から作り直しが必要だったことでしょう。

local file systemの実ファイル読み書きもできるらしいですが、自分が管理権限を持つサーバ上でならまだしもgithub上で出来るとはちょっと思えませんし、試みるべきでもないと思います。
(github側のファイル管理は調べたことないので知らないですが、どうせベアリポジトリなのでファイルシステム上のファイル操作しても特に意味はないと予想)

ブラウザからgithubのファイル操作にこだわるのであれば、ちゃんとアクセストークン扱ってAPI経由で変更をコミットするような形を調べる方が確実に早いです。
そうではなくPyScriptで色々やりたいのであれば、まずは自分が管理するOS上でhttpサーバを動かす所からが試しやすいでしょう。

2Like

Comments

  1. ありがとうございます
    APIの方法で試してみます

Your answer might help someone💌