我是靠谱客的博主 有魅力期待,最近开发中收集的这篇文章主要介绍python用户输入列表append_python使用append函数无法添加列表元素,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

定义了全局变量X,Y。希望可以利用多进程快速的把我想要的信息append进同一个列表。列表在最后print出来之前都是有数据的,但是print出来的却是空列表。

from PIL import Image,ImageDraw,ImageFont

import os,time,multiprocessing

global x

global y

x,y=[],[]

def sy(path):

image = Image.open(path)

layer = image.convert('RGBA')

x.append(layer.size[0])

y.append(layer.size[1])

print(x,y) #看看x和y是不是添加元素为空

def find_file(path):

info=[]

for i in os.listdir(path):

this_path = os.path.join(path, i)

if os.path.isfile(this_path):

info.append(this_path)

else:

pass

return info

if __name__ == '__main__':

imgpath=find_file(input('目标文件夹: '))

pool=multiprocessing.Pool(process=1)

#当process=4时,发现运行变快了,但是有很多个图片的信息没append到列表里.如果是1就可以全部append到。

pool.map(sy,imgpath)

pool.close()

pool.join()

# x.sort() 准备比较大小,取所有图片X,Y最小值

# y.sort()

# print(x[0],y[0])

print(x,y)

运行输出如下:

[717] [709]

[717, 640] [709, 640]

[717, 640, 747] [709, 640, 747]

[717, 640, 747, 672] [709, 640, 747, 672]

[717, 640, 747, 672, 792] [709, 640, 747, 672, 792]

[717, 640, 747, 672, 792, 744] [709, 640, 747, 672, 792, 744]

[717, 640, 747, 672, 792, 744, 738] [709, 640, 747, 672, 792, 744, 738]

[717, 640, 747, 672, 792, 744, 738, 792] [709, 640, 747, 672, 792, 744, 738, 792]

[] []

可以看见最后的列表忽然变成空的了,不知道为什么。另外就是多进程的时候,处理会遗漏很多图片。相比单进程的时候少了很多要append的图片信息。

求大神指导下怎么改正。原来的虽然可以正常用,但是图片数量多的话,处理速度实在太慢,所以希望可以多进程加快处理速度。谢谢

最后

以上就是有魅力期待为你收集整理的python用户输入列表append_python使用append函数无法添加列表元素的全部内容,希望文章能够帮你解决python用户输入列表append_python使用append函数无法添加列表元素所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部