簡體   English   中英

從導入模塊的目錄中讀取文件

[英]Reading a file from the directory which module is imported

我正在嘗試讀取在 Python 中創建的自定義模塊中的文件。 但是當我嘗試這樣做時它顯示錯誤。

目錄結構

base/
|
|_ app.py
|_ cmod/
   |
   |_ __init__.py
   |_ util.py
   |_ db.csv

util.py片段

from csvhandler import CSVFile

def get_db():
    with open("db.csv", "r+") as db:
        data = CSVFile(db)
    return data

app.py片段

from cmod import util
data = util.get_db()

它拋出以下錯誤

FileNotFoundError: [Errno 2] No such file or directory: 'db.csv'

放置的導入有什么問題嗎?
注意: db.csv只能放在那里。

運行它時的當前工作目錄可能是 app.py 所在的一個。 open() 在當前工作目錄中查找文件,而不是當前執行文件的目錄。

打開相對存儲的文件最便攜的方法是獲取 python 文件的完整路徑,隔離目錄,然后加入它。

util.py

import os

def get_db():
    directory = os.path.dirname(__file__)
    with open(os.path.join(directory, "db.csv"), "r+") as db:
        data = CSVFile(db)
    return data

暫無
暫無

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

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