Python 3.6中的ord()函数

Python 3.6中的ord()函数,python,python-2.7,Python,Python 2.7,正在尝试在Python3.6上打开Python2.7中的项目。我在那里遇到了ord()函数的问题 使用Python2.7处理ord()很好,我得到的输出图像文件具有相同的图片。我的意思是,我可以在图片中写入字节的信息 但是对于Python3.6,我试图不调用ord(),我得到的是一行记录信息,而不是像Python2.7那样,我的真实图片 from PIL import Image import sys textfile = open(sys.argv[1],'rb') textstring =

正在尝试在Python3.6上打开Python2.7中的项目。我在那里遇到了
ord()
函数的问题

使用Python2.7处理
ord()
很好,我得到的输出图像文件具有相同的图片。我的意思是,我可以在图片中写入字节的信息

但是对于Python3.6,我试图不调用
ord()
,我得到的是一行记录信息,而不是像Python2.7那样,我的真实图片

from PIL import Image
import sys
textfile = open(sys.argv[1],'rb')
textstring = textfile.read()
textfile.close()
xval = 500
yval = int(len(textstring)/(xval*4) + 1)
im = Image.new('RGBA', (xval,yval), (0,0,0,0))
width = xval
height = yval
count = 0
for y in range (0,height):
    for x in range (0,width):
        if count == len(textstring) - 4:
            im.putpixel((x,y),(ord(textstring[count]),ord(textstring[count + 1]),ord(textstring[count + 2]),ord(textstring[count + 3])))
            break
        if count == len(textstring) - 3:
            im.putpixel((x,y),(ord(textstring[count]),ord(textstring[count + 1]),ord(textstring[count + 2]),0))
            break
        if count == len(textstring) - 2:
            im.putpixel((x,y),(ord(textstring[count]),ord(textstring[count + 1]),0,0))
            break
        if count == len(textstring) - 1:
            im.putpixel((x,y),(ord(textstring[count]),0,0,0))
            break
        im.putpixel((x,y),(ord(textstring[count]),ord(textstring[count + 1]),ord(textstring[count + 2]),ord(textstring[count + 3])))
        count += 4
im.save(sys.argv[2])
在Python3中,我使用
ord()
得到一个错误:

TypeError:ord()应为长度为1的字符串,但找到int im.putpixel((x,y),(ord(文本字符串[count]),ord(文本字符串[count+1]),ord(文本字符串[count+2]),ord(文本字符串[count+3]))

我试图添加
b
而不是
ord()
,但没有成功

要运行程序,需要添加参数:
python encryption.py inputfile image.png

你能给我一些建议吗,我该怎么修?谢谢。

您有一个文本文件,但您以二进制模式显式打开它:

textfile = open(sys.argv[1],'rb')
使用

以文本模式阅读。在二进制模式下读取时,在Python 3中会得到
字节
字节的元素是0范围内的整数。。255,因此出现了错误。Python2太草率了,直到为时已晚,才有人注意到差异

textfile = open(sys.argv[1], 'r')