簡體   English   中英

如何從子文件夾訪問低於路徑級別的文件

[英]How to access a file a path level below from a subfolder

假設我在當前目錄中有一個名為credentials.json的文件,一個環境變量MY_CREDENTIALS=credentials.json和一個腳本main.py ,它通過os.getenv('MY_CREDENTIALS')使用這個環境變量。

現在假設我創建了一個子文件夾並在那里放了這樣的東西: /subfolder/my_other_script.py 如果我打印os.getenv('MY_CREDENTIALS')那么我確實得到了credentials.json但我不能使用這個文件,因為它在我的根目錄中(不在/subfolder )。 那么,雖然這個文件在根目錄中,我該如何使用它呢? 唯一對我有用的是在/subfolder制作credentials.json的副本,但隨后我會有這個文件的多個副本,我不想要那個。

感謝您的答復!

這樣的事情可以工作:

from pathlib import Path
import os

FILENAME = os.getenv('MY_CREDENTIALS')
filePath = Path(FILENAME)

if filePath.exists() and filePath.is_file():
    print("Success: File exists")
    print(filePath.read_text())
else:
    print("Error: File does not exist. Getting file from level below.")
    print((filePath.absolute().parent.parent / filePath.name).read_text())

基本上,您檢查當前文件夾中是否存在您的文件。 如果您的腳本在您的根文件夾中,就會出現這種情況。 如果不是,則假定您位於子文件夾中。 因此,您嘗試從下一級(您的根)獲取文件。 它尚未完全投入生產,但對於您提到的特定情況,它應該可以工作。 在生產中,您應該考慮可能嵌套子文件夾或文件永久丟失的情況。

您可以創建符號鏈接

os.symlink('<root>', '<subfolder>')

https://docs.python.org/3/library/os.html#os.symlink

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM