python - 为什么我必须同时写 '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'
解决方案
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'
没有工作:
- 它应该是
r'Desktop\census.csv'
或者'Desktop/census.csv'
- 你程序的当前目录不是你的目录所在的
Desktop
目录,所以相对路径不正确。要检查您的 Python 程序在哪个目录中运行,您可以使用以下代码:import os; os.getcwd()