免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6002 | 回复: 7
打印 上一主题 下一主题

python 循环读取多个excel时出错。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-11-08 08:40 |只看该作者 |倒序浏览
有两个文件,文件名不同,内容格式相同,如果只有一个文件是可以得,但放两个文件的话,第二个文件会出错。  error is __import__() argument 1 must be string without null bytes, not str

两文件名
CN SU HC Report(FW15).xls
CN WX HC Report(FW16).xls

--------------------
部分代码..
if __name__ == "__main__":  
# Import HC data to database
    result=[]
    findfiles(r'D:\Tableau_Report\HR','CN * HC*.xls')
    for filename in result:
        print filename
        readHC(filename)
--------------------

结果:
> "C:\Python27\python.exe" -u "D:\Tableau_Report\HC.py"
CN SU HC Report(FW15).xls
('Suzhou', '38766', 'AN, 'Male', '2006-07-11', '2006-07-11', 'Employee', '38889', Coronado', 'Indirect', 'SUCH-N', 'Asia Engineering ', 'Drive Operations', '14034', 'Sr Engineer')
CN WX HC Report(FW16).xls
open D:\Tableau_Report\HR\CN WX HC Report(FW16).xls error, error is __import__() argument 1 must be string without null bytes, not str

论坛徽章:
4
白羊座
日期:2013-11-05 10:26:09冥斗士
日期:2015-11-17 14:19:55白银圣斗士
日期:2015-11-17 15:13:0815-16赛季CBA联赛之新疆
日期:2016-04-01 09:10:58
2 [报告]
发表于 2013-11-08 09:29 |只看该作者
有个问题,从错误信息上来看,如果是出错的话,是出现在你的readHC(filename)函数中的读写过程中,跟现在这段代码没有什么太大的关系。

论坛徽章:
4
白羊座
日期:2013-11-05 10:26:09冥斗士
日期:2015-11-17 14:19:55白银圣斗士
日期:2015-11-17 15:13:0815-16赛季CBA联赛之新疆
日期:2016-04-01 09:10:58
3 [报告]
发表于 2013-11-08 09:48 |只看该作者
回复 1# luiszhu


    如果可能的话,建议把readHC(filename)的那段代码也贴上来,方便别人帮助你找问题。

论坛徽章:
0
4 [报告]
发表于 2013-11-08 10:31 |只看该作者
读没有问题,第一个文件已经读出来了,如果在目录中只有一个文件就不会有错,不管是哪个文件,但是有多个文件时,只能执行完第一个文件。用xlrd打开excel文件。 xlrd也没有关闭文件的方法。

import xlrd as ExcelRead  

部分readHC函数代码。

def readHC(file_name):
    if os.path.exists(os.path.join('D:\Tableau_Report\HR',file_name)):      
        try:  
            xls = ExcelRead.open_workbook(os.path.join('D:\Tableau_Report\HR',file_name))  
            sheet = xls.sheet_by_index(0)  
        except Exception, e:  
            print "open %s error, error is %s" %(os.path.join('D:\Tableau_Report\HR',file_name), e)  
            return
    else:
        print "open %s error, file not exist!" %(os.path.join('D:\Tableau_Report\HR',file_name))
        return   

论坛徽章:
4
白羊座
日期:2013-11-05 10:26:09冥斗士
日期:2015-11-17 14:19:55白银圣斗士
日期:2015-11-17 15:13:0815-16赛季CBA联赛之新疆
日期:2016-04-01 09:10:58
5 [报告]
发表于 2013-11-08 12:30 |只看该作者
回复 4# luiszhu


    用这个可以看下代码,呵呵:print(inspect.getsource(xlrd.open_workbook)),发现是对book的操作
同样方法,再进去下,有个方法:release_resources,不过没有去实验。
你可以试下能不能用它来释放资源。

论坛徽章:
0
6 [报告]
发表于 2013-11-08 20:57 |只看该作者
不懂怎么用,能否详细一点告知。谢谢!

论坛徽章:
0
7 [报告]
发表于 2013-11-11 09:31 |只看该作者
找到问题了,是我的机器有问题, 换了台机器就好了,
我的机器是win7 64bit.

论坛徽章:
4
白羊座
日期:2013-11-05 10:26:09冥斗士
日期:2015-11-17 14:19:55白银圣斗士
日期:2015-11-17 15:13:0815-16赛季CBA联赛之新疆
日期:2016-04-01 09:10:58
8 [报告]
发表于 2013-11-11 13:27 |只看该作者
:wink: 恭喜问题解决。
呵呵,因为周末不上线,不知道后续情况。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP