Python 在Windows中读取Ubuntu计算机上写入的excel文件时出错(使用熊猫)

Python 在Windows中读取Ubuntu计算机上写入的excel文件时出错(使用熊猫),python,pandas,Python,Pandas,我使用熊猫进行数据分析。在其中一个程序中,我必须编写一份Excel工作表,并使用pd.to_Excel()完成。这是在Ubuntu机器上执行的。 现在,我正试图在Windows机器上读取编写的excel文件。我正在使用pd.read\u excel() 我得到以下错误: IOError: [Errno 22] invalid mode ('rb') or filename: 'C:\\Users\\Harshavardhan R\\Downloads\\Kerala Energy Project

我使用熊猫进行数据分析。在其中一个程序中,我必须编写一份Excel工作表,并使用
pd.to_Excel()
完成。这是在Ubuntu机器上执行的。

现在,我正试图在Windows机器上读取编写的excel文件。我正在使用
pd.read\u excel()

我得到以下错误:

IOError: [Errno 22] invalid mode ('rb') or filename: 'C:\\Users\\Harshavardhan R\\Downloads\\Kerala Energy Project\\Bottom-Up Modelling\threshold variation\\outputs\x07c1.xlsx'
资料来源是:

df = pd.read_excel('C:\Users\Harshavardhan R\Downloads\Kerala Energy Project\Bottom-Up Modelling\threshold variation\outputs\ac1.xlsx')
我可以保证文件在我打开并检查时存在


为什么在错误消息中文件名更改为
x07c1.xlsx
?如何避免这个问题?

您所遇到的错误是由于Windows通常期望文件路径的外观(使用
\
)而不是Ubuntu期望文件路径的外观(使用
/

正如所写的那样,您的路径特别有一个
\t
(tab)和
\a
(BEL)

第二个问题是为什么会看到
\x07c1.xlsx
\x07
BEL
的ASCII表示形式。如果仔细观察路径,也会注意到隐藏的制表符。当只有一个斜杠而不是两个斜杠时,可以看到这一点:

\\Bottom-Up Modelling\threshold variation\\
                     ^^ This is a tab, not a "t"

你可以通过做一些不同的事情来解决这个问题。最简单的方法是将路径设置为原始字符串。在字符串前面放一个
r

df = pd.read_excel(r'C:\Users\Harshavardhan R\Downloads\Kerala Energy Project\Bottom-Up Modelling\threshold variation\outputs\ac1.xlsx')
这将按字符串存在的原样读取字符串。注意:原始字符串不能以单个反斜杠结尾

另一种选择是通过将每个反斜杠分成两个来避免反斜杠:

df = pd.read_excel('C:\\Users\\Harshavardhan R\\Downloads\\Kerala Energy Project\\Bottom-Up Modelling\\threshold variation\\outputs\\ac1.xlsx')
这是可行的,但要求每次使用路径时都执行此步骤

最后一个选项是使用前斜杠。Windows可以很好地处理正向斜杠,这不是操作系统的标准惯例

df = pd.read_excel('C:/Users/Harshavardhan R/Downloads/Kerala Energy Project/Bottom-Up Modelling/threshold variation/outputs/ac1.xlsx')


就我个人而言,我会选择原始字符串。它是一个单独的字符,路径对您或其他开发人员来说并不“奇怪”

在Windows中尝试使用前向斜杠(/),或者在指定文件路径的开头添加原始字符串
r
。检查了所有三种方法,所有方法都有效。坚持原始字符串格式。