首頁  >  問答  >  主體

Pyscript說沒有目錄但有

我遇到了一個令人沮喪的問題,pyscript 說目錄不存在。但確實如此。我有一個名為“pot1”的文件,pyscript 似乎沒有看到它。 我已經重寫了超過893次目錄,並且嘗試查找問題,我已經正確地將目錄寫入檔案。

<py-script>
    pot1 = open("C:/Plant Lab/sav/garden/pots/pot1", "r").readline()
</py-script>

但我只得到這個。

Traceback (most recent call last):
  File "/lib/python3.10/_pyodide/_base.py", line 460, in eval_code
    .run(globals, locals)
  File "/lib/python3.10/_pyodide/_base.py", line 306, in run
    coroutine = eval(self.code, globals, locals)
  File "<exec>", line 1, in <module>
FileNotFoundError: [Errno 44] No such file or directory: 'C:/Plant Lab/sav/garden/pots/pot1'

我嘗試在谷歌上搜索,但最終只得到了非常基本的答案,例如“你正確地編寫了目錄嗎?”,我不知道還能做什麼。我嘗試過使用 \ 而不是 /。嘗試找出它是什麼目錄,但 CORS 不允許我這樣做。同時,我會一次又一次地嘗試。

P粉170858678P粉170858678282 天前413

全部回覆(1)我來回復

  • P粉366946380

    P粉3669463802024-01-11 10:13:21

    使用 pyscript 時,程式碼在虛擬檔案系統中運作。如果你運行

    <html>
      <head>
        <link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" />
        <script defer src="https://pyscript.net/latest/pyscript.js"></script>
      </head>
      <body>
        <py-script> import os;print(os.getcwd())</py-script>
      </body>
    </html>

    您應該獲得/home/pyodide,這是該虛擬檔案系統的根目錄。您的資料夾和檔案無法透過該虛擬系統直接存取(這是 Javascript 應用程式的限制)。

    從檔案系統存取資料最簡單的方法是使用 標記來取得檔案(更多資訊此處)。

    <html>
      <head>
        <link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" />
        <script defer src="https://pyscript.net/latest/pyscript.js"></script>
      </head>
      <body>
        <py-config> 
          [[fetch]] 
          files = ["/path/to/your/file"] </py-config>
        <py-script>
          pot1 = open("/path/to/your/file", "r").readline()
          print(pot1)
        </py-script>
      </body>
    </html>

    如果您像這樣更新檔案並嘗試存取它,您仍然會遇到錯誤。這是因為 fetch 方法通常用於從遠端伺服器載入內容,但在您的情況下,您可以透過執行來執行一個簡單的 python Web 伺服器

    python3 -m http.server

    然後訪問您的頁面 http://0.0.0.0:8000/yourfile.html.

    回覆
    0
  • 取消回覆