FileNotFoundError: [Errno 2] 没有这样的文件或目录:“C:\\Users\\sardo\\Downloads\\ChicagoCensusData.csv”)

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\sardo\\Downloads\\ChicagoCensusData.csv')

提问人:Ibrat Usmonov 提问时间:10/5/2023 最后编辑:Ibrat Usmonov 更新时间:10/5/2023 访问量:75

问:

我在 Jupyter Notebook 中运行此代码


df=pd.read_csv(r'C:\Users\sardo\Downloads\ChicagoCensusData.csv')
df.to_sql("CENSUS_DATA", con, if_exists='replace', index=False, method='mutli')

我尝试了这些方法:

  1. df = pd.read_csv(r'C:\Users\sardo\Downloads\ChicagoCensusData.csv')

  2. df = pd.read_csv('C:\Users\sardo\Downloads\ChicagoCensusData.csv')

  3. df = pd.read_csv('ChicagoCensusData.csv')

  4. 以上所有内容,都带有双引号和正斜杠

但错误显示:为什么是双反斜杠?问题出在哪里?帮帮我FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\sardo\\Downloads\\ChicagoCensusData.csv')

python-3.x pandas 数据帧 读取-csv

评论

3赞 John Gordon 10/5/2023
简单的答案是,该文件确实不存在。您使用了错误的文件名或错误的目录名称。(双反斜杠是 Python 如何处理字符串中的反斜杠的产物。它们并不重要。
1赞 John Gordon 10/5/2023
使用此代码可查看该目录的真实内容import os; print(os.listdir(r'C:\Users\sardo\Downloads'))
0赞 Ibrat Usmonov 10/5/2023
嗨,我找到了问题所在。我在线使用 Jupyter Notebook,因为它是 Coursera 上的 IBM 数据科学课程提供的。当我在计算机上本地使用时,一切都很好,没有显示错误。我认为服务器当然有问题。谢谢!
2赞 Wayne 10/5/2023
“我在线使用 Jupyter Notebook,因为它是 Coursera 上的 IBM 数据科学课程提供的。”这句话应该在原来的帖子中。 “我认为服务器当然有问题。关于那个...如果在浏览器中的远程计算机上运行的 Jupyter 可以看到驱动器的层次结构并访问文件,而您却没有先以某种方式允许这样做,则会出现重大安全问题。如果您首先将数据文件上传到远程计算机并将其放在笔记本旁边,则您列出的选项编号 #3 应该可以工作。
1赞 Wayne 10/5/2023
此外,即使没有实际的远程机器,并且您的课程使用的是 JupyterLite(在这种情况下您可能会看到 pyodide 内核),您也应该将其视为事实上的“远程”机器。JupyterLite目前的工作方式是在它使用的浏览器存储/缓存区域中有一个单独的文件。在这种情况下,您必须将数据文件拖到左侧的文件浏览器面板中,将其放入运行笔记本的同一目录中。(如果不涉及 JupyterLite,请忽略整个评论。

答:

1赞 Sand 10/5/2023 #1

双反斜杠是因为反斜杠本身标记特殊字符,如换行符 (),所以要将其用作文本,它必须将自身转义为 ,但使用类型字符串可以避免该条目,因此只要您有类型字符串,您应该最好使用单斜杠。但是,如果它抛出错误说文件不存在,那么斜杠可能不是问题。如果您使用的是 Windows,您可以按 shift+右键单击该文件,提示符上应该有一个“复制为路径”的选项 - 将其粘贴到里面,看看它在读取 CSV 时是否仍然抛出错误。否则,这可能是一个权限问题,即 python 实例被拒绝访问该特定文件。\n\\r" ... "r" ... "r" ... "

评论

1赞 Ibrat Usmonov 10/5/2023
嗨,我找到了问题所在。我在线使用 Jupyter Notebook,因为它是 Coursera 上的 IBM 数据科学课程提供的。当我在计算机上本地使用时,一切都很好,没有显示错误。我认为在线服务器存在问题。谢谢!