问题:

在调用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))