呼叫自建模組時FileNotFoundError

2021-10-09 04:39:27 字數 1464 閱讀 9418

當我有如圖這樣檔案架構時:

# a.py 檔案源**

import pandas as pd

import os

deffunc()

:# current_dirname = os.path.dirname(__file__)

# df = pd.read_csv(current_dirname + "/data.csv")

df = pd.read_csv(

"data.csv"

)print

(df)

if __name__ ==

'__main__'

: func(

)

# maina.py 檔案源**

from modulea.a import func

if __name__ ==

'__main__'

: func(

)

直接執行a.py自然是列印data.csv的內容。

但是直接執行maina.py,會列印

filenotfounderror: [errno 2] file b'data.csv' does not exist: b'data.csv',表示找不到data.csv檔案。即,從外部進入的程式再呼叫fuc()函式時,讀入data.csv只會從與自己同根目錄下尋找。

如果想讓modulea內的程式直接尋找自己模組檔案內的資料如何辦呢?解除func()前兩行的注釋,再進行一下小修改,如下**所示。

# a.py 檔案源**

import pandas as pd

import os

deffunc()

: current_dirname = os.path.dirname(__file__)

df = pd.read_csv(current_dirname +

"/data.csv"

)# df = pd.read_csv("data.csv")

print

(df)

if __name__ ==

'__main__'

: func(

)

__file__是python內建變數,儲存本檔案的絕對路徑名

os模組中os.path.dirname()則可以返回檔案的上級目錄

示例專案位址

參考:

自我強化1 自建模組,重新匯入模組

在python中自建乙個模組,比如這樣,新建乙個py檔案 def abc print 123 然後儲存好,命名為abc.py 在shell中做以下操作 import sys sys.path然後可以看到返回了乙個列表,列表中的元素是一堆電腦中的路徑,這些路徑是當你import模組時,程式在這些路徑中...

企業如何自建呼叫中心

通過近段時間本專版同廣州誠伯資訊 共同以呼叫中心為主題的作出相關報道,相信廣大讀者對該領域有了一定的了解。我們談到從呼叫中心建設形式看,有外包和自建兩種。誠然,外包是目前企業應用更為普遍的一種方式 ccid資料表明,運用呼叫中心的企業中,71 是選擇外包服務的 但企業也有必要對如何開發建設呼叫中心進...

python呼叫模組時傳參出錯

首先定義了乙個login模組,傳參是兩個 username,password coding utf 8 def login self,username,password driver self.driver self.driver.implicitly wait 30 不加等待會出錯 driver....