加载纯 CSV 文件时 pandas read_csv 错误

xyc*_*ycs 0 python windows path

我在使用 python pandas 时遇到了一个非常奇怪的错误:

import pandas as pd

df = pd.read_csv('C:\Temp\test.csv', index_col=None, comment='#', sep=',')
Run Code Online (Sandbox Code Playgroud)

test.csv 是在记事本中创建的一个非常简单的 CSV 文件:

aaa,bbb,date
hhhhh,wws,20220701
Run Code Online (Sandbox Code Playgroud)

现在我收到错误:

  File "C:\test\untitled0.py", line 10, in <module>
    df = pd.read_csv('C:\temp\test.csv', index_col=None, comment='#', sep=',')

  File "C:\...\lib\site-packages\pandas\util\_decorators.py", line 311, in wrapper
    return func(*args, **kwargs)

  File "C:\...\lib\site-packages\pandas\io\parsers\readers.py", line 586, in read_csv
    return _read(filepath_or_buffer, kwds)

  File "C:\...\lib\site-packages\pandas\io\parsers\readers.py", line 482, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)

  File "C:\...\lib\site-packages\pandas\io\parsers\readers.py", line 811, in __init__
    self._engine = self._make_engine(self.engine)

  File "C:\...\lib\site-packages\pandas\io\parsers\readers.py", line 1040, in _make_engine
    return mapping[engine](self.f, **self.options)  # type: ignore[call-arg]

  File "C:\...\lib\site-packages\pandas\io\parsers\c_parser_wrapper.py", line 51, in __init__
    self._open_handles(src, kwds)

  File "C:\...\lib\site-packages\pandas\io\parsers\base_parser.py", line 229, in _open_handles
    errors=kwds.get("encoding_errors", "strict"),

  File "C:\...\lib\site-packages\pandas\io\common.py", line 707, in get_handle
    newline="",

OSError: [Errno 22] Invalid argument: 'C:\temp\test.csv'
Run Code Online (Sandbox Code Playgroud)

我也尝试使用Excel导出CSV文件,并得到同样的错误。

有谁知道出了什么问题吗?

con*_*ger 5

在 python 字符串中, 中的反斜杠'\t'是转义字符,它使这两个字符(\后跟t)表示tab。您可以通过在raw strings开头引号前添加字母“r”来解决此问题:

r'C:\Temp\test.csv'
Run Code Online (Sandbox Code Playgroud)