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()上手动写入路径。但是,我仍然得到相同的结果,双反斜杠。有什么我要忽略的吗?
答案 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)