无敌的垃圾 2022-01-05 19:24 采纳率: 100%
浏览 113
已结题

关于Python中os.walk(path)循环的问题

使用Python对文件夹中的 .sig 后缀文件进行操作,操作后转存到路径下的xls文件夹下,如果文件夹中没有.sig 后缀文件, 会输出 “所给路径不存在.sig文件” ,但是每执行一次就会多输出一次,关终端、重启软件都无法制止它的增长。不懂其中奥妙,求解。。

img

path = "E:\\数据\\scr2 - 副本"
have_sig = 0
isExists = os.path.exists(path)
if not isExists:
    print("提供的存储.sig文件路径不存在")
else:
    for curDir, dirs, files in os.walk(path):
        isExists = os.path.exists(curDir+"\\xls")
        if not isExists :
            os.makedirs(curDir+"\\xls")
        for file in files:
            if file.endswith(".sig"):
                have_sig = have_sig+1
                # print(curDir+"\\"+file)
                # print(curDir+"\\"+file[:-3])
                os.rename(curDir+"\\"+file,curDir+"\\"+file[:-3]+"txt")
                pass
                fo = open(curDir+"\\"+file[:-3]+"txt", "r")
                date = fo.read()
                date = date.split("\n")
                datas = np.array(date[30:]) 
                code = np.empty(0)
                for i in datas:
                    i = i.split()
                    for j in i:
                        code = np.append(code,float(j))
                code = code.reshape(-1,4)
                # print(code.shape())#1023,4
                fo.close()

                workbook = xlwt.Workbook(encoding = 'ascii')
                worksheet = workbook.add_sheet('sheet')
                worksheet = workbook.get_sheet('sheet')
                for row in range(0,len(code),1):
                    for column in range(0,4,1):
                        worksheet.write(row, column, code[row][column])
                workbook.save(curDir+"\\xls\\"+file[:-3]+"xls")
        if have_sig == 0:
            print("所给路径不存在.sig文件")
        else:
            print("处理文件数量:",have_sig)
 

运行结果及报错内容

(18次)
E:\9-python\opencv>python -u "c:\Users\star\Desktop\Untitled-1.py"
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
(19次)
E:\9-python\opencv>python -u "c:\Users\star\Desktop\Untitled-1.py"
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件
所给路径不存在.sig文件

我的解答思路和尝试过的方法

尝试输出print(os.walk(path))
但是结果都一样:
<generator object _walk at 0x0000022483B67350>

我想要达到的结果

应该是自己的知识盲区,望指导

  • 写回答

2条回答 默认 最新

  • user-from-future 2022-01-05 20:52
    关注
    isExists = os.path.exists(curDir+"\\xls")
    if not isExists :
                os.makedirs(curDir+"\\xls")
    

    这段代码(上述代码在第9、10行)是你每次都会多一次的原因所在,由于是遍历所有子目录,所以肯定不是每个文件夹都有xls这个子目录的,这样就导致了你每次都会新建一个xls文件夹,导致每次多输出一次。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月13日
  • 已采纳回答 1月5日
  • 创建了问题 1月5日

悬赏问题

  • ¥15 NeRF的代码复现以及人工智能入门
  • ¥15 centos如何做一个可以让ikuai连接的openvpn
  • ¥15 Protege 中的Entities下面的界面删除了如何复原
  • ¥15 scrapy爬虫求帮
  • ¥15 imageEnView绘图问题
  • ¥15 关于#python#的问题:您好可以加您一下联系方式吗,在复现的时候确实有点问题难以解决
  • ¥15 联想电脑重装系统时无法发现硬盘
  • ¥15 MATLAB与UR10e实体机械臂建立通讯
  • ¥15 c++题需要快一点不用opencv
  • ¥15 关于#java#的问题:想要咨询Flowable流程引擎框架的问题