免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5606 | 回复: 7

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

论坛徽章:
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
发表于 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
发表于 2013-11-08 09:48 |显示全部楼层
回复 1# luiszhu


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

论坛徽章:
0
发表于 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
发表于 2013-11-08 12:30 |显示全部楼层
回复 4# luiszhu


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

论坛徽章:
0
发表于 2013-11-08 20:57 |显示全部楼层
不懂怎么用,能否详细一点告知。谢谢!

论坛徽章:
0
发表于 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
发表于 2013-11-11 13:27 |显示全部楼层
:wink: 恭喜问题解决。
呵呵,因为周末不上线,不知道后续情况。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。




----------------------------------------

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP