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

我在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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值