Je travaille avec pandas et j'ai besoin de lire certains fichiers CSV, la structure ressemble à ceci:
folder/folder2/scripts_folder/script.py
folder/folder2/data_folder/data.csv
Comment puis-je ouvrir le data.csv
fichier du script dans scripts_folder
?
J'ai essayé ceci:
absolute_path = os.path.abspath(os.path.dirname('data.csv'))
pandas.read_csv(absolute_path + '/data.csv')
Je reçois cette erreur:
File folder/folder2/data_folder/data.csv does not exist
Essayer
import pandas as pd
pd.read_csv("../data_folder/data.csv")
Les pandas commenceront à chercher d'où se trouve votre fichier python actuel). Par conséquent, vous pouvez passer de votre répertoire actuel à l'emplacement où se trouvent vos données avec '..'. Par exemple:
pd.read_csv('../../../data_folder/data.csv')
Va monter de 3 niveaux et ensuite dans un dossier de données (en supposant que ce soit là) ou
pd.read_csv('data_folder/data.csv')
en supposant que votre dossier de données se trouve dans le même répertoire que votre fichier .py.
Pour les utilisateurs non-Windows:
import pandas as pd
import os
os.chdir("../data_folder")
df = pd.read_csv("data.csv")
Pour les utilisateurs Windows:
import pandas as pd
df = pd.read_csv(r"C:\data_folder\data.csv")
Le préfixe r dans l'emplacement ci-dessus permet de gagner du temps lorsque vous attribuez l'emplacement au pandas Dataframe.
Vous pouvez utiliser le __file__
attribut:
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')