Lui*_*uez 23 python relative-path pandas
我正在使用pandas并且需要阅读一些csv文件,结构是这样的.
文件夹/文件夹2/scripts_folder/script.py
文件夹/文件夹2/data_folder/data.csv
如何从scripts_folder中的脚本打开data.csv文件?
我试过这个:
absolute_path = os.path.abspath(os.path.dirname('data.csv'))
pandas.read_csv(absolute_path + '/data.csv')
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
File folder/folder2/data_folder/data.csv does not exist
Run Code Online (Sandbox Code Playgroud)
SPK*_*der 28
尝试
import pandas as pd
pd.read_csv("../data_folder/data.csv")
Run Code Online (Sandbox Code Playgroud)
kso*_*all 19
Pandas将开始查看当前python文件所在的位置.因此,您可以使用".."从当前目录移动到数据所在的位置.例如:
pd.read_csv('../../../data_folder/data.csv')
Run Code Online (Sandbox Code Playgroud)
将上升3级然后进入data_folder(假设它在那里)或者
pd.read_csv('data_folder/data.csv')
Run Code Online (Sandbox Code Playgroud)
假设您的data_folder与.py文件位于同一目录中.
您可以使用以下__file__属性:
import os
import pandas as pd
df = pd.read_csv(os.path.join(os.path.dirname(__file__), "../data_folder/data.csv"))
Run Code Online (Sandbox Code Playgroud)
对于非Windows用户:
import pandas as pd
import os
os.chdir("../data_folder")
df = pd.read_csv("data.csv")
Run Code Online (Sandbox Code Playgroud)
对于Windows用户:
import pandas as pd
df = pd.read_csv(r"C:\data_folder\data.csv")
Run Code Online (Sandbox Code Playgroud)
将位置提供给pandas Dataframe时,上面的位置中的前缀r可以节省时间。
# 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')
Run Code Online (Sandbox Code Playgroud)
使用f 字符串保持整洁:
import os
import pandas as pd
data_files = '../data_folder/'
csv_name = 'data.csv'
pd.read_csv(f"{data_files}{csv_name}")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92282 次 |
| 最近记录: |