将 python 文件导入另一个文件(在子目录中)时,它停止在同一目录中查找 csv

When import a python file into another (in a subdirectory) it stops finding the csv in the same directory

我正在尝试像这样在管理器文件中导入清理文件:

import sys
import os

sys.path.append(os.path.dirname(os.path.abspath("cleaning.py")))
from cleaning import df_invoices_full

主文件夹包含文件清理、交易列表和一个名为“apps”的子文件夹,其中包含管理器文件:

另请注意,清理文件读取交易 listing.csv 文件。

我在 运行 时遇到的问题是:

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

并且“事务 Listings.csv”已通过清理正确加载,但在将清理导入 maganagers 时未正确加载。

感谢您的帮助。

#-- cleaning.py --#

import os
import pandas as pd

csv_filename = "Transaction Listings.csv"
folder = os.path.dirname(os.path.abspath(__file__))
path_to_csv = os.path.join(folder, csv_filename)

df_invoices_full = pd.read_csv(path_to_csv, encoding="latin-1") 

cleaning.py 中使用此代码,而不是您当前的代码。

发生的事情是,当 cleaning.py 导入 apps/managers.py 时,它在 apps 文件夹中运行,而不是 CSV 文件所在的基本文件夹中。通过给出绝对路径,pd.read_csv() 将在正确的位置查找文件 - cleaning.py 实际所在的目录。参见 what does the __file__ variable mean/do?.