首页 > 解决方案 > 为什么我必须同时写 'read' 和 'r' 才能使用 pandas 写入文件

问题描述

import pandas as pd
import numpy as np

df = pd.read_csv(r'C:\Users\OneDrive\Desktop\Python\Python_coursera\Course 1 - Notebook Resources\resources\week-2\datasets\census.csv')

如果我省略了 'r',我将无法读取 csv 文件。写'read'和'r'是否正常?因为我遵循的课程教程没有介绍它。

如果我只是不编码'r',则会出现此消息

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

另外,如果我将此文件移动到我的桌面并尝试阅读它,我根本无法阅读它。我需要其他代码来阅读吗?

>>> df = pd.read_csv('Desktop\census.csv')
FileNotFoundError: [Errno 2] No such file or directory: 'census.csv'

标签: pythonpandasdataframecsv

解决方案


Python中r前面的字符串文字表明它是原始字符串。这允许它将反斜杠 ( \) 视为文字反斜杠,而不是 Unicode 转义。此功能通常用于编写正则表达式模式。这与阅读无关。非常不幸的是,Windows 选择将\其用作路径分隔符。要在 Python 中编写 Windows 文字路径,您可以像之前那样使用原始字符串。或者,只需使用常规/路径分隔符(即'C:/Users/OneDrive/Desktop/Python/Python_coursera/Course 1 - Notebook Resources/resources/week-2/datasets/census.csv')编写它。这不适用于低级系统 API,但 Python 通常会为您处理将路径分隔符转换为适合系统的分隔符。

至于为什么'Desktop\census.csv'没有工作:

  1. 它应该是r'Desktop\census.csv'或者'Desktop/census.csv'
  2. 你程序的当前目录不是你的目录所在的Desktop目录,所以相对路径不正确。要检查您的 Python 程序在哪个目录中运行,您可以使用以下代码:import os; os.getcwd()

推荐阅读