os.path.isfile的錯誤
阿新 • • 發佈:2017-06-13
nco spa pat replace nbsp ecs 總計 txt target
今天寫了一個程序,讀取子目錄(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()))
os.path.isfile的錯誤