I\'m trying to load a .csv
file using the pd.read_csv()
function when I get an error despite the file path being correct and using raw strings.
$10 says your file path is correct with respect to the location of the .py file, but incorrect with respect to the location from which you call python
For example, let's say script.py is located in ~/script/, and file.csv is located in ~/. Let's say script.py contains
import pandas
df = pandas.read_csv('../file.csv') # correct path from ~/script/ where script.py resides
If from ~/ you run python script/script.py
, you will get the FileNotFound error. However, if from ~/script/ you run python script.py
, it will work.
On Windows systems you should try with os.path.normcase
.
It normalize the case of a pathname. On Unix and Mac OS X, this returns the path unchanged; on case-insensitive filesystems, it converts the path to lowercase. On Windows, it also converts forward slashes to backward slashes. Raise a TypeError if the type of path is not str or bytes (directly or indirectly through the os.PathLike interface).
import os
import pandas as pd
script_dir = os.getcwd()
file = 'example_file.csv'
data = pd.read_csv(os.path.normcase(os.path.join(script_dir, file)))
Try using os.path.join
to create the filepath:
import os
f_path = os.path.join(*['C:', 'Users', 'user', 'Desktop', 'datafile.csv'])
df = pd.read_csv(f_path)
Experienced the same issue. Path was correct. Changing the file name seems to solve the problem.
Old file name: Season 2017/2018 Premier League.csv New file name: test.csv
Possibly the whitespaces or "/"
For my particular issue, the failure to load the file correctly was due to an "invisible" character that was introduced when I copied the filepath from the security tab of the file properties in windows.
This character is e2 80 aa
, the UTF-8 encoding of U+202A, the left-to-right embedding symbol. It can be easily removed by erasing (hitting backspace or delete) when you've located the character (leftmost char in the string).
Note: I chose to answer because the answers here do not answer my question and I believe a few folks (as seen in the comments) might meet the same situation as I did. There also seems to be new answers every now and then since I did not mark this question as resolved.
I know following is a silly mistake but it could be the problem with your file.
I've renamed the file manually from adfa123
to abc.csv
. The extension of the file was hidden, after renaming, Actual File name became abc.csv.csv
. I've then removed the extra .csv
from the name and everything was fine.
Hope it could help anyone else.