首页 > 代码库 > os.path.isfile的错误

os.path.isfile的错误

今天写了一个程序,读取子目录(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的错误