我试图导入一些文件进行绘图,一切顺利,直到我将程序移到上面的目录之前。似乎有问题的相关代码段如下:
import os
import pandas as pd
path = os.getcwd() + '/spectrum_scan/'
files = os.listdir(path)
dframefiles = pd.DataFrame(files)
up = pd.read_csv(dframefiles.ix[i][0])
如果我直接输入shell os.path.exists(path)
,它会返回True
。
目录spectrum_scan
中的第一个文件是foo.csv
。
当我输入os.path.exists(path + 'foo.csv')
时,它会返回True
,但os.path.isfile('foo.csv')
会返回False
。
此外,要求files
和dframefiles
会返回所有内容,但是当代码运行时,我会得到Exception: File foo.csv does not exist
。
我有什么明显的遗失吗?
答案 0 :(得分:4)
您正在使用os.listdir()
,它返回文件名,而不是路径。您需要添加以下路径:
files = [os.path.join(path, f) for f in os.listdir(path)]
否则python将尝试在当前目录中查找'foo.csv'
,而不是在文件实际所在的spectrum_scan
子目录中查找。