Kiedy próbuję uruchomić ten kod, aby odczytać plik CSV znajdujący się na moim dysku C:

import pandas as pd


fd_inspections = pd.read_csv('c:\food_inspections.csv')

Dostaję ten błąd

runfile('C:/food_inspections.py', wdir='C:')
Traceback (most recent call last):

  File "<ipython-input-5-369bc957a5c4>", line 1, in <module>
    runfile('C:/food_inspections.py', wdir='C:')

  File "C:\anaconda\lib\site-packages\spyder\utils\site\sitecustomize.py", line 710, in runfile
    execfile(filename, namespace)

  File "C:\anaconda\lib\site-packages\spyder\utils\site\sitecustomize.py", line 101, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/food_inspections.py", line 13, in <module>
    fd_inspections =pd.read_csv('c:\food_inspections.csv')

  File "C:\anaconda\lib\site-packages\pandas\io\parsers.py", line 655, in parser_f
    return _read(filepath_or_buffer, kwds)

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

  File "C:\anaconda\lib\site-packages\pandas\io\parsers.py", line 764, in __init__
    self._make_engine(self.engine)

  File "C:\anaconda\lib\site-packages\pandas\io\parsers.py", line 985, in _make_engine
    self._engine = CParserWrapper(self.f, **self.options)

  File "C:\anaconda\lib\site-packages\pandas\io\parsers.py", line 1605, in __init__
    self._reader = parsers.TextReader(src, **kwds)

  File "pandas/_libs/parsers.pyx", line 394, in pandas._libs.parsers.TextReader.__cinit__ (pandas\_libs\parsers.c:4209)

  File "pandas/_libs/parsers.pyx", line 710, in pandas._libs.parsers.TextReader._setup_parser_source (pandas\_libs\parsers.c:8873)

FileNotFoundError: File b'c:\x0cood_inspections.csv' does not exist

Dlaczego próbuje odczytać plik z inną nazwą, której nie ma w kodzie?

0
Stacy Kringle 16 grudzień 2019, 23:16
Bądź ostrożny używając odwrotnych ukośników w ścieżkach. Są także postaciami ucieczki. Spróbuj zamiast tego: fd_inspections = pd.read_csv('c:/food_inspections.csv')
 – 
mechanical_meat
16 grudzień 2019, 23:18

3 odpowiedzi

  • po prostu umieść r'' przed ścieżką do pliku. Ponieważ \ wymyka się znakowi.
  • Innym sposobem jest użycie \\ w ciągu znaków, aby uniknąć tego \.
import pandas as pd
fd_inspections = pd.read_csv(r'c:\food_inspections.csv')
2
Poojan 16 grudzień 2019, 23:35

Spróbuj wydrukować ścieżkę do pliku.

print('c:\food_inspections.csv')

Zwraca:

c:\x0cood_inspections.csv

Dzieje się tak, ponieważ w twoim ciągu znajduje się \ f, które ma specjalne znaczenie. Spróbuj z nieprzetworzonym ciągiem:

fd_inspections = pd.read_csv(r'c:\food_inspections.csv')

To powinno działać.

1
Péter Leéh 16 grudzień 2019, 23:21

Ukośniki odwrotne to znaki ucieczki w Pythonie.

Podczas pisania ścieżek plików musisz je podwoić lub zamiast tego użyć ukośników ...

Fd_inspections = pd.read_csv ('c: \\ food_inspections.csv')

Lub (schludniejsza i dlatego preferowana opcja)

Fd_inspections = pd.read_csv ('c: /food_inspections.csv')

0
acrobat 16 grudzień 2019, 23:25