如果我独立运行,Pandas模块read_csv会在Eclipse + pydev中读取文件,但会失败

时间:2015-02-25 16:46:04

标签: csv pandas

我目前正在使用Python和Tkinter开发GUI。 任务是打开并读取一些* .csv文件。 我命令执行此任务我编写了以下代码:

ReadData=pd.read_csv(ResultFile,skipinitialspace=True).values

虽然我在IDE Eclipse + Pydev中运行代码,但一切正常。但是一旦我从Dos窗口运行我的代码,即python MainGrap.py,代码就会发出错误声明该文件不存在??????? 我首先通过self.Inp_Filename=askopenfilename()将路径加载到文件,然后通过以下函数创建文件夹列表:

def PathDisintegrator(Inp_File):
    Folders = os.path.split(Inp_File)
    LastFolder = Folders[1]
    RootPath = Folders[0]
    Dirs=[]
    while not(LastFolder==''):
        Dirs.insert(0,LastFolder)
        Folders = os.path.split(RootPath)
        LastFolder = Folders[1]
        RootPath = Folders[0]
    Dirs.insert(0,RootPath[:-1])
    Dirs=Dirs[:-1] 
    return(Dirs)

然后我可以通过以下函数重新创建文件的完整路径:

def PathAndFile(Folders,File):
    FileOut=''
    for item in Folders:
        FileOut=FileOut+os.sep+item
        #FileOut=FileOut+r"\\"+item
    FileOut=FileOut[1:]+os.sep+File 
    return(FileOut)

即使在Pandas的解析器中,我也打印出了文件路径,它对我来说很好看:D:\Abaqus_Runs\DOWLEX_PET_LAMINATE_PROTO_REFERENCE_SI_Version_2_Revision_2_MDangle0_Rate0_01_MOVING_NODE_out.csv

1 个答案:

答案 0 :(得分:1)

这里的问题是你在eclipse中的python环境可以看到你的csv所在的文件夹,但终端没有。

您可以通过以下方式观察系统路径:

In [331]:

import sys
sys.path
Out[331]:
['',
 'C:\\WinPython-64bit-3.4.2.4\\python-3.4.2.amd64\\python34.zip',
 'C:\\WinPython-64bit-3.4.2.4\\python-3.4.2.amd64\\DLLs',
 'C:\\WinPython-64bit-3.4.2.4\\python-3.4.2.amd64\\lib',
 'C:\\WinPython-64bit-3.4.2.4\\python-3.4.2.amd64',
 'C:\\WinPython-64bit-3.4.2.4\\python-3.4.2.amd64\\lib\\site-packages',
 'C:\\WinPython-64bit-3.4.2.4\\python-3.4.2.amd64\\lib\\site-packages\\win32',
 'C:\\WinPython-64bit-3.4.2.4\\python-3.4.2.amd64\\lib\\site-packages\\win32\\lib',
 'C:\\WinPython-64bit-3.4.2.4\\python-3.4.2.amd64\\lib\\site-packages\\Pythonwin',
 'C:\\WinPython-64bit-3.4.2.4\\python-3.4.2.amd64\\lib\\site-packages\\IPython\\extensions']

因此,您需要提供完整路径或将路径附加到csv所在的sys路径。请注意,必须对反斜杠进行转义,例如'c:\\data\\my.csv'但是如果你使用正斜杠那么它可以正常工作:例如'c:/data/my.csv'