问题:
在调用os.system(cmd)的时候,遇到了新的问题,就是需要压缩的图片数量太多了(比如首次的时候),虽然可以针对首次调用ScriptPNG.cmd的时候,直接指定整个文件夹就好,可是毕竟是治标不治本,主要是因为微软的限制:
在计算机上运行 Microsoft Windows XP 或更高版本,可以在命令提示符下使用的字符串的最大的长度 8191 个字符。
在运行 Microsoft Windows 2000 或 Windows NT 4.0 的计算机上, 将最大长度可以在命令提示符下使用的字符串的为 2047 个字符
解决思路:
1:字符长度限制了,降低字符长度,比如里面先把路径cd到对应的目录层,在使用相对路径,可以减少较多的长的字符串
2:分批处理,比如100个图片做一次处理
3:修改ScriptPNG.cmd里面的内容,将里面的处理方式变成路径的方式
先排除第3个思路,这个肯定也能实现,不过耗时太多
思路1的方式相对可行,不过因为图片数量巨大,所以变成在怎么减少也还是无法处理
最终只能采用思路3,分批处理
1 #分批处理列表 2 allFiles = [] 3 #文件字符串 4 files = "" 5 #先执行cd到bin目录 6 #os.system("cd "+PngSrcRoot) 7 for file in file_list_compress: 8 files = files +" "+file 9 if len(files) > 6000: #超过cmd可以执行的字符串长度 10 allFiles.append(files) 11 files = "" 12 print("本次需要压缩的图片集合有几组:",len(allFiles))