os.path.isfile的错误
2017-06-13 14:36 很大很老实 阅读(1396) 评论(0) 编辑 收藏 举报今天写了一个程序,读取子目录(source)下的所有文件,然后转换。
程序一部分代码如下:
def DtoTab(dsrc, dtarget): try: for item in os.listdir(dsrc): if os.path.isfile(item): print('ok')
然后发现,找不到文件。
最后发现,item读取出来的额,只是文件名,而isfile判断的时候,就在py的workdir下面寻找,所以,失败。修改如下:
def DtoTab(dsrc, dtarget): try: for item in os.listdir(dsrc): fullfilename=os.path.join(dsrc,item) if os.path.isfile(fullfilename) and item.endswith('.txt'): print('开始处理文件:{}'.format(item)) dfilename = os.path.join(dtarget,item) ftarget = codecs.open(dfilename, 'w', encoding='utf-8') icount = 0 for line in open(fullfilename, encoding='utf8'): line = line.replace(',', '\t') icount = icount + 1 ftarget.write(line) ftarget.close() print('处理完毕文件:{};总计{}行'.format(item, icount)) except Exception as e: print('出错啦,错误信息是:{}'.format(traceback.format_exc()))