python2.7 - xlwings中,调用的py脚本中的file.write操作不成功

查看:214
本文介绍了python2.7 - xlwings中,调用的py脚本中的file.write操作不成功的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

版本:
操作系统win7 使用Anaconda 4.2.0(64bit),python2.7.12
xlwings 0.10.0 office 2010

采用xlwings官网教程中的从excel中调用python脚本的方式,即新建一个VBA模块, RunPython ("import t5c ; t5c.main()")的方式去调用。目前除了write操作,其他都没有问题。

python脚本中是

def main():
    sht=xw.Book.caller().sheets[1]         #This is use for in Excel
    # sht=xw.Book('test3-2.xlsm').sheets[1]     #This is for debug in ST
    fh=open('temp.txt','a')
    fh.write('try')
    fh.close()

该脚本从外部运行一切正常,但从excel中调用时,write操作不报错,但是要写入文件的内容并没有实际写入。所以求问为什么。
嗯这个还不稳定,有时候好像还成功过。
谢谢各位

解决方案

这是 Excel 的原因, Excel 中运行的 Python 解释器的工作目录和 Excel 是不同的, 打开文件时你应该指定绝对路径, 比如:

os.path.abspath(os.path.join(os.path.dirname(__file__), 'testFile.txt')) 

这篇关于python2.7 - xlwings中,调用的py脚本中的file.write操作不成功的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆