私はpandasを使用しており、csvファイルを読み込む必要があります。構造は次のようになります。
folder/folder2/scripts_folder/script.py
folder/folder2/data_folder/data.csv
data.csv
のスクリプトからscripts_folder
ファイルを開くにはどうすればよいですか?
私はこれを試しました:
absolute_path = os.path.abspath(os.path.dirname('data.csv'))
pandas.read_csv(absolute_path + '/data.csv')
私はこのエラーを受け取ります:
File folder/folder2/data_folder/data.csv does not exist
試して
import pandas as pd
pd.read_csv("../data_folder/data.csv")
パンダは、現在のpythonファイルがある場所から検索を開始します。したがって、現在のディレクトリから「..」を使用してデータがある場所に移動できます。次に例を示します。
pd.read_csv('../../../data_folder/data.csv')
3レベル上に移動してからdata_folderに移動します(存在すると仮定)または
pd.read_csv('data_folder/data.csv')
data_folderが.pyファイルと同じディレクトリにあると仮定します。
Windows以外のユーザーの場合:
import pandas as pd
import os
os.chdir("../data_folder")
df = pd.read_csv("data.csv")
Windowsユーザーの場合:
import pandas as pd
df = pd.read_csv(r"C:\data_folder\data.csv")
上記の場所にあるプレフィックスrは、pandasデータフレームに場所を指定する際の時間を節約します。
__file__
属性を使用できます:
import os
import pandas as pd
df = pd.read_csv(os.path.join(os.path.dirname(__file__), "../data_folder/data.csv"))
# script.py
current_file = os.path.abspath(os.path.dirname(__file__)) #older/folder2/scripts_folder
#csv_filename
csv_filename = os.path.join(current_file, '../data_folder/data.csv')
import pandas as pd
df = pd.read_csv('C:/data_folder/data.csv')