python运行路径和脚本文件所在路径

来源:互联网 发布:身份证阅读器端口失败 编辑:程序博客网 时间:2024/06/01 22:23

我在sublime Text2编辑python脚本程序,用ipython导入脚本模块,打开文件时总是报错,原来是路径问题

def file2matrix(filename):
fp = open(filename,'r')
datalines = fp.readlines()
lenlines = len(datalines)
dataSet = np.zeros((lenlines,3))
labels = []


index = 0
for line in datalines:
linelist = line.strip().split('\t')
dataSet[index,:] = linelist[0:3]
labels.append(int(linelist[-1]))
index = index + 1
fp.close()
return dataSet, labels

fp = open(filename, 'r')此处,执行当前脚本没问题,但是ipython里导入该模块后,工作目录为ipython所在目录,因此打开文件必定出错,

ipython导入自定义模块参考http://blog.csdn.net/hyholine/article/details/8581740

脚本文件和要打开的文件在同一个目录,因此我尝试fp = open(os.getcwd()+os.sep+filename,'r'),但是这样还是不行,原因是os.getcwd()

获取的是执行脚本的工作目录,即ipython工作目录;

在这篇博客终于找到方法http://blog.csdn.net/yuechuzhao/article/details/9329633,os.path[0]和os.argv[0]也没有获取到脚本所在目录,而是

工作目录,使用

os.path.split(os.path.realpath(__file__))[0]


最终获取到脚本文件目录,而不是工作目录


pathname = os.path.split(os.path.realpath(__file__))
fp = open(pathname[0]+os.sep+filename,'r')


在ipython里导入模块,调用该函数,打开文件成功,问题解决了。






0 0
原创粉丝点击