【发布时间】:2018-12-13 12:28:54
【问题描述】:
当我使用下面附加原始字符串文字的变量时,我得到一个文件未找到错误,我相信因为文件路径包含需要转义的 \f,我希望将路径读取为原始文字,所以尝试了手动将'r'前缀添加到路径字符串并将其分配给我称为路径的变量,如下所示,但它不起作用。
import pandas as pd
path = raw_input("Enter location of data file:")
path = str('r"'+ str(path[1:]))
print path
try:
df=pd.read_excel(path)
except:
df= pd.read_csv(path)
df.head
打印 r"C:\Users\faulknerdw\Anaconda\Progs\GW_data.csv"
但如果我直接输入看起来完全相同的内容,它就会起作用。例如
df=pd.read_excel(r"C:\Users\faulknerdw\Anaconda\Progs\GW_data.csv")
和
df= pd.read_csv(r"C:\Users\faulknerdw\Anaconda\Progs\GW_data.csv")
发生了什么事?
【问题讨论】:
-
注意:我希望文件路径的用户输入带有引号,例如“C:\Users\...”作为 Windows 中“复制为路径”命令的结果。
-
r不是字符串的一部分。它只是一条指令,让 Python 解释器以特殊方式处理 `\`。 -
@DyZ 谢谢,是的,我知道,问题是,如何制定从“raw_input”创建的文件路径变量,以便 read_csv 将其识别为字符串文字文件路径?
-
你不需要
path = str('r"'+ str(path[1:]))这一行。简单的拿出来。其余的应该可以工作。 -
@DyZ 不幸的是,它不起作用,因为我的文件路径包含需要转义的 \f(因此尝试使用 'r' 前缀将其读取为原始文件)。
标签: python pandas path filepath