我遇到了一个似乎无法解决的小问题。我的程序要求用户输入一个 .csv 文件的路径,然后程序用它来做东西。这是我的代码:
import pandas as pd
path = input("Please enter a path to a .csv file")
data = pd.read_csv(path)
我在终端中运行它,因此将文件拖入其中会产生我认为的绝对路径。路径看起来像 /Users/me/Downloads/sample.csv
,错误消息是 FileNotFoundError: [Errno 2] File b'/Users/me/Downloads/sample.csv ' does not exist: b'/Users/me/Downloads/sample.csv '
我试图在它前面连接一个 r,以便它将它视为一个原始字符串(这是我的谷歌搜索产生的),但这只是将 r 放在路径中。所以我的问题是这些 b 在路径之前来自哪里,我如何使这个可变路径起作用?
答案 0 :(得分:0)
回答您的问题:b
前缀表示您的路径值是 byte literal,而不是字符串。
看看 available Pandas documentation,似乎 read_csv
期望路径的字符串值。尽管它可以接受字节文字值,但它可能无法以预期的方式处理它。
此 answer provides a good distinction 介于字符串(字符序列)和字节文字(字节序列)之间,以及 this one demonstrates 一种您可以将字节文字decode
转换为字符串值的方法>