您的位置:首页 > 编程语言 > Python开发

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

2015-04-15 09:12 501 查看
我在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里导入模块,调用该函数,打开文件成功,问题解决了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: