python运行错误TypeError: unsupported operand type(s) for -: 'str' and 'str'
cut.py的内容如下:#-*-coding:utf-8-*-importImageimportsysimportos.pathfromdatetimeimport*im...
cut.py的内容如下:
# -*- coding: utf-8 -*- import Image import sys import os.path from datetime import * import random import time IMAGE_BAKUP = "/few" #_CONTENT_TYPES = { '.png': 'image/png', '.gif': 'image/gif', '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg', '.jpe': 'image/jpeg' } _CONTENT_TYPES = { 'image/png': '.png', 'image/gif': '.gif', 'image/jpeg': '.jpg', 'image/jpeg': '.jpeg' } IMAGE_BAKUP = '' IMAGE_PATH = sys.argv[1] IMAGE_X1 = sys.argv[2] IMAGE_Y1 = sys.argv[3] IMAGE_X2 = sys.argv[4] IMAGE_Y2 = sys.argv[5] im = Image.open(IMAGE_PATH) #打开图片句柄 box = (IMAGE_X1,IMAGE_Y1,IMAGE_X2,IMAGE_Y2) #设定裁剪区域 region = im.crop(box) #裁剪图片,并获取句柄region region.save(IMAGE_BAKUP + datetime.now()+random.randint(0,99),) #保存图片 print int(time.time()); print '%s%s-%s%s'%(IMAGE_BAKUP,int(time.time()),random.randint(0,99), _CONTENT_TYPES[_CONTENT_TYPES])
运行后出错 展开
# -*- coding: utf-8 -*- import Image import sys import os.path from datetime import * import random import time IMAGE_BAKUP = "/few" #_CONTENT_TYPES = { '.png': 'image/png', '.gif': 'image/gif', '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg', '.jpe': 'image/jpeg' } _CONTENT_TYPES = { 'image/png': '.png', 'image/gif': '.gif', 'image/jpeg': '.jpg', 'image/jpeg': '.jpeg' } IMAGE_BAKUP = '' IMAGE_PATH = sys.argv[1] IMAGE_X1 = sys.argv[2] IMAGE_Y1 = sys.argv[3] IMAGE_X2 = sys.argv[4] IMAGE_Y2 = sys.argv[5] im = Image.open(IMAGE_PATH) #打开图片句柄 box = (IMAGE_X1,IMAGE_Y1,IMAGE_X2,IMAGE_Y2) #设定裁剪区域 region = im.crop(box) #裁剪图片,并获取句柄region region.save(IMAGE_BAKUP + datetime.now()+random.randint(0,99),) #保存图片 print int(time.time()); print '%s%s-%s%s'%(IMAGE_BAKUP,int(time.time()),random.randint(0,99), _CONTENT_TYPES[_CONTENT_TYPES])
运行后出错 展开
7个回答
展开全部
试试了你的代码,没什么问题
另外根据你错误的提示“在str和str之间,无法使用-(减法)”
那么很可能你这里错了
IMAGE_X1 = sys.argv[2]
IMAGE_Y1 = sys.argv[3]
IMAGE_X2 = sys.argv[4]
IMAGE_Y2 = sys.argv[5]
这4个值应该就是str,但根据你的代码,应该要是int或float这类才对,你可以type一下这四个值,看是不是str,然后你自己手动设一下这四个值,或者强制转换一下IMAGE_X1 = int(sys.argv[2]),
再运行你的程序看看
另外根据你错误的提示“在str和str之间,无法使用-(减法)”
那么很可能你这里错了
IMAGE_X1 = sys.argv[2]
IMAGE_Y1 = sys.argv[3]
IMAGE_X2 = sys.argv[4]
IMAGE_Y2 = sys.argv[5]
这4个值应该就是str,但根据你的代码,应该要是int或float这类才对,你可以type一下这四个值,看是不是str,然后你自己手动设一下这四个值,或者强制转换一下IMAGE_X1 = int(sys.argv[2]),
再运行你的程序看看
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
所有输入的参数应该先转为数值类型 比如 IMAGE_X1 = int(sys.argv[2])
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询