Python 如何使用相对路径打开data_文件夹中的文件?
我正在使用pandas,需要读取一些csv文件,结构如下: 文件夹/folder2/scripts\u文件夹/script.pyPython 如何使用相对路径打开data_文件夹中的文件?,python,pandas,relative-path,Python,Pandas,Relative Path,我正在使用pandas,需要读取一些csv文件,结构如下: 文件夹/folder2/scripts\u文件夹/script.py from pathlib import Path path = Path(__file__).parent / "../data_folder/data.csv" pd.read_csv(path) 文件夹/folder2/data_文件夹/data.csv 如何从scripts\u文件夹中的脚本打开data.csv文件 我试过这个: absol
from pathlib import Path
path = Path(__file__).parent / "../data_folder/data.csv"
pd.read_csv(path)
文件夹/folder2/data_文件夹/data.csv
如何从scripts\u文件夹中的脚本打开data.csv
文件
我试过这个:
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
试一试
您可以使用\uuuu文件\uuuuu
属性:
import os
import pandas as pd
df = pd.read_csv(os.path.join(os.path.dirname(__file__), "../data_folder/data.csv"))
Pandas将从当前python文件所在的位置开始查看。因此,您可以使用“..”从当前目录移动到数据所在的位置
例如:
pd.read_csv('../../../data_folder/data.csv')
将上升3级,然后进入data_文件夹(假设它在那里)
或
假设您的data_文件夹与.py文件位于同一目录中。对于非Windows用户:
import pandas as pd
import os
os.chdir("../data_folder")
df = pd.read_csv("data.csv")
import pandas as pd
df = pd.read_csv(r"C:\data_folder\data.csv")
对于Windows用户:
import pandas as pd
import os
os.chdir("../data_folder")
df = pd.read_csv("data.csv")
import pandas as pd
df = pd.read_csv(r"C:\data_folder\data.csv")
上面位置中的前缀r为pandas数据帧提供位置时节省了时间。我也在寻找相对路径版本,这样可以正常工作。注意:当运行(Spyder 3.6)时,您将看到(unicode错误)'UnicodeScape'编解码器无法在结束三引号处解码字节。删除有问题的注释行14和15,调整环境的文件名和位置,并检查缩进
import pandas as pd
df = pd.read_csv('C:/data_folder/data.csv')
--编码:utf-8--
“”“
创建于2020年1月24日星期五12:12:40
资料来源:
表明:
通过指定相对路径-windows版本加载不在CWD中的csv
@作者:道格
我们将从CWDC:\Users\Doug\.spyder-py3\Data Camp\pandas
加载文件
C:/Users/Doug/.spyder-py3/Data Camp/Cleaning/g1803.csv
“”“
保持物品整洁:
使用python或pandas时,当您使用read_csv
或pd.read_csv
时,它们都会查看当前工作目录,默认情况下,python进程已在其中启动。因此,您需要使用os
模块来chdir()
import pandas as pd
import os
print(os.getcwd())
os.chdir("D:/01Coding/Python/data_sets/myowndata")
print(os.getcwd())
df = pd.read_csv('data.csv',nrows=10)
print(df.head())
您可以始终使用~
指向您的主目录,然后您可以引用您的数据文件夹
import pandas as pd
df = pd.read_csv("~/mydata/data.csv")
你的情况应该是这样的
import pandas as pd
df = pd.read_csv("~/folder/folder2/data_folder/data.csv")
您还可以将数据
目录设置为前缀
import pandas as pd
DATA_DIR = "~/folder/folder2/data_folder/"
df = pd.read_csv(DATA_DIR+"data.csv")
你可以像@nikos tavoularis所说的那样利用这个机会
import pandas as pd
DATA_DIR = "~/folder/folder2/data_folder/"
FILE_NAME = "data.csv"
df = pd.read_csv(f"{DATA_DIR}{FILE_NAME}")
这里的链接回答了这个问题
基本上,使用Path
frompathlib
可以在script.py中执行以下操作
from pathlib import Path
path = Path(__file__).parent / "../data_folder/data.csv"
pd.read_csv(path)
你可以试试这个
df = pd.read_csv("E:\working datasets\sales.csv")
print(df.head())
事实上,这是最好的解决方案。为什么我们不指定所有父文件夹?还可以使用osThanks作为答案。当我使用双引号而不是单引号时,问题得到了解决。感谢这是我作为python/机器学习初学者所需要的解释!没有理由导入操作系统。请参阅@ksooklall's answer.pandas自动查找运行笔记本的CSV或任何其他数据集文件,但os.chdir()只是更改要从中拾取多个数据的工作目录位置。如果你想读取CSV文件,可能你有大量的数据存储在一个给定的文件夹中,那么你就不需要每次都写入位置。这会产生副作用,并且为了某种感觉上的方便而忽略这些数据是不好的做法。我之所以说“感觉方便”,是因为另一个答案更简短、可读性更强,并且没有你不必要的依赖性。提供的答案被标记为低质量帖子供审查。以下是一些指导原则。提供的答案不正确,仅代码答案不被视为“好”答案。从…起OP特别说明了相对路径
,但您已经用绝对路径
回答了问题。这是否回答了您的问题?另外:,
from pathlib import Path
path = Path(__file__).parent / "../data_folder/data.csv"
pd.read_csv(path)
df = pd.read_csv("E:\working datasets\sales.csv")
print(df.head())