带有pd.read_csv的filepath_or_buffer的双反斜杠

时间:2019-01-31 09:52:33

标签: python-3.x pandas pathlib

Python 3.6,操作系统Windows 7

我正在尝试使用pd.read_csv()和相对文件路径来读取.txt。因此,从pd.read_csv()API检出了filepath参数可以是任何有效的字符串路径。

因此,为了定义相对路径,我使用pathlib模块。我将相对路径定义为:

df_rel_path = pathlib.Path.cwd() / ("folder1") / ("folder2") / ("file.txt")
a = str(df_rel_path)

最后,我只想用它来为pd.read_csv()供稿:

df = pd.read_csv(a, engine = "python", sep = "\s+")

但是,我只是收到一条错误消息,指出“没有这样的文件或目录:...”在文件夹路径上显示双反斜杠。

我尝试使用原始字符串(即,使用r"relative/path")在pd.read_csv()上手动写入路径。但是,我仍然得到相同的结果,双反斜杠。有什么我要忽略的吗?

2 个答案:

答案 0 :(得分:0)

您可以使用os模块来获得想要的东西

df_rel_path = os.path.abspath(os.path.join(os.getcwd(), "folder1", "folder2"))

这样,os模块将使用适当的分隔符处理路径部分的连接。如果您读取的文件位于同一目录中,则可以省略os.path.abspath,但出于完整性考虑,我将其写入。

有关更多信息,请参阅以下SO问题:Find current directory and file's directory

答案 1 :(得分:0)

您需要一个文件名才能调用pd.read_csv。在示例中,“ a”仅是路径,并不指向特定文件。您可以执行以下操作:

df_rel_path = pathlib.Path.cwd() / ("folder1") / ("folder2")
a = str(df_rel_path)
df = pd.read_csv(a+'/' +'filename.txt')

使用文件名,您的代码对我有用(在Windows 10上):

df_rel_path = pathlib.Path.cwd() / ("folder1") / ("folder2")/ ("file.txt")
a = str(df_rel_path)
df = pd.read_csv(a)