如果我去的话,我可以轻松读取csv文件:
pd.read_csv(r'C:\\yourpath\yourcsvfile.csv')
但我想尝试路径变量而不是硬编码我的路径。所以我试过了:
processed_data_path=os.path.join(os.path.pardir,'data','processed')
train_file_path=os.path.abspath(os.path.join(processed_data_path,'train.csv'))
test_file_path=os.path.abspath(os.path.join(processed_data_path,'test.csv'))
打印结果为:
C:\yourpath\train.csv
C:\yourpath\test.csv
所以它看起来不错。但是当我尝试下面的代码时抛出一个文件不存在错误:
train_df = pd.read_csv(train_file_path)
问题出在哪里?
答案 0 :(得分:1)
在调用解析器之前添加一个检查可能会帮助您识别问题 在解析之前检查路径总是一个很好的实践,以确保我们不会碰到例外:
if os.path.exists(train_file_path):
train_df = pd.read_csv(train_file_path)
else:
print(train_file_path)
答案 1 :(得分:1)
我会使用pathlib
模块,这是现代Pandas版本非常方便和本机支持的:
演示:
try:
from pathlib import Path
except ImportError: # Python 2
from pathlib2 import Path
In [49]: p = Path('D:\\')
使用重载的运算符/
来加入路径:
In [50]: f = p / 'temp' / '.data' / '1.txt'
In [51]: f
Out[51]: WindowsPath('D:/temp/.data/1.txt')
In [52]: pd.read_csv(f)
Out[52]:
Val
0 0.120000
1 0.320000
2 0.439999
3 0.560000
4 0.599999
答案 2 :(得分:0)
对于VSCode用户:问题可能是VSCode将当前工作目录设置为工作区根文件夹。我的解决方案是:
要将当前工作目录设置为您当时正在执行的任何文件:
文件>首选项>设置> Python>数据科学>在文件目录中执行
感谢用户brch:Python in VSCode: Set working directory to python file's path everytime