如何通过python管理RAM使用情况?

时间:2019-06-20 15:23:17

标签: python

我尝试创建一个脚本,该脚本将刮擦公共图片共享网站上最新上传的文件,并使用imageai识别图片中的内容,然后将其移动到imageai称为最佳猜测的文件夹中。 该脚本可以运行,但是它确实很慢,大约一分钟后,它消耗了5GB的RAM,这使我的PC不稳定。

我是Python的新手,到目前为止,这是我的第二个项目,因此我只尝试了用stackoverflow帖子编写的一些内容。

import requests
from bs4 import BeautifulSoup
import re
import urllib3
import urllib
from urllib3 import ProxyManager, make_headers
from imageai.Prediction import ImagePrediction
import os
import shutil, os
execution_path = os.getcwd()
from PIL import Image



proxy = urllib3.ProxyManager('proxy')

def make_soup(url):
http = urllib3.PoolManager()
r = http.request("GET", url)
return BeautifulSoup(r.data,'lxml')


ip = 'proxy'
proxies = {
  'http': ip,
  'https': ip,
}
default="space"
filetype = []
i = 1
soup = make_soup("link")

for img in soup.find_all('img', {'src':re.compile('_tn.jpg')}):
os.chdir(default)
temp = img.get('src').replace("_tn","")
print(temp)
nametemp = img.get('alt').replace("png","jpg")
print(nametemp)
if str(nametemp) == 'None':
    filename = str(i)
    i = i+1
else:
    filename = nametemp



imagefile = open(filename , "wb")
imagefile.write(requests.get(temp).content)
imagefile.close()
print( filename + " mentve")
if ".png" in filename:
    try:
        im = Image.open(filename +".png")
        filetype = "png"
        print("this is a png")
        im.close()
    except IOError:
        print("png error")
if ".jpg" in filename:

    try:
        im=Image.open(filename)
        print("this is a jpg")
        filetype= "jpg"
        im.close()
        prediction = ImagePrediction()
        prediction.setModelTypeAsResNet()
        prediction.setModelPath(os.path.join(execution_path, "resnet50_weights_tf_dim_ordering_tf_kernels.h5"))
        prediction.loadModel()


        predictions, probabilities = prediction.predictImage(os.path.join(execution_path, filename ), result_count=1 )
        for eachPrediction, eachProbability in zip(predictions, probabilities):
            print(eachPrediction , " : " , eachProbability)
            dir = str(predictions[0])
        if not os.path.exists(dir):
            os.makedirs(dir)
            os.chdir(dir)
            print(dir)
        if not os.path.isfile(filename):
            os.chdir(default)
            shutil.move(filename , dir)
        else:
            print("file already exists")
    except IOError:
            print("jpg error")
if ".jpeg" in filename:

    try:
        im=Image.open(filename)
        print("this is a jpeg")
        filetype= "jpeg"
        im.close()
    except IOError:
            print("jpeg error")                
print(filetype)

由于我正在寻找有关我的代码可能存在问题的建议,因此我在上面提供了完整的建议。抱歉,如果它违反任何规则,我认为这是合乎逻辑的步骤。 我希望获得一些阅读材料方面的建议或一些想法,以便更好地了解Python如何处理RAM使用情况。

任何事情都值得赞赏,但请记住,这是我到目前为止的第二个项目。

谢谢。

0 个答案:

没有答案