将变量传递给read_csv作为参数?

时间:2019-04-10 21:02:55

标签: python python-3.x csv

为了更加用户友好,我创建了一个提示,要求用户输入文件路径。

print('Please enter file path surrounded by quotes.')
path = 'r' + input()
df = pd.DataFrame(pd.read_csv(path, index_col=False))

输入为

"C:\path\somefile.csv"

输出回报

FileNotFoundError: [Errno 2] File b'r"C:\path\somefile.csv"' does not exist: b'r"C:\path\somefile.csv"'

如果我删除变量输入并将文件直接拖放到read_csv参数中,它将正常工作。有人可以教育我吗?

2 个答案:

答案 0 :(得分:3)

我认为您正在将原始字符串文字与字符串值混淆。当我们写类似

csv = pd.read_csv(r'C:\path\somefile.csv')

r'C:\path\somefile.csv'是字符串文字。这就是我们在Python代码中表示字符串 的方式。用户永远都不会意识到r''表示法,包括字母r和引号。相反,他们应该只键入在其他程序中看到的路径。这意味着您可以做

path = input()

也不必要求用户键入任何引号。

答案 1 :(得分:2)

您过度设计了代码。就这么简单:

print('Please enter file path without quotes.')
path = input()
df =pd.read_csv(path, index_col=False)

您不需要引号,因为它们会自动添加