Python TypeError:应为字符串

Python TypeError:应为字符串,python,Python,数据的输出在names.txt文件中显示为('ABC\n',0),如何将其打印为ABC,name.txt是德语名称 from PIL import Image, ImageDraw, ImageFont import os import sys reload(sys) sys.setdefaultencoding('utf8') filepath = 'names.txt' fonttype = '/usr/share/fonts/truetype/msttcorefonts/Arial.ttf

数据的输出在names.txt文件中显示为
('ABC\n',0)
,如何将其打印为
ABC
name.txt
是德语名称

from PIL import Image, ImageDraw, ImageFont
import os
import sys
reload(sys)
sys.setdefaultencoding('utf8')
filepath = 'names.txt'
fonttype = '/usr/share/fonts/truetype/msttcorefonts/Arial.ttf'
fntYU = ImageFont.truetype(fonttype, 150)
i=0
with open(filepath) as myfile:
    for data in zip(myfile, range(100)):
        i+=1
        print (data)
        if i == 100:
            os.system("echo complete the 10 photots > complete.txt")
        if (len(data)) <= 6:
            img = Image.new('RGB', (3840, 2160), color = (255, 255, 255))
            fnt = ImageFont.truetype(fonttype, 550)
            d = ImageDraw.Draw(img)
            d.text((600,700), data, font=fnt, fill=(0, 0, 0))
            img.save(data.replace('\n', '')+".png")
从PIL导入图像、ImageDraw、ImageFont
导入操作系统
导入系统
重新加载(系统)
sys.setdefaultencoding('utf8')
文件路径='names.txt'
fonttype='/usr/share/fonts/truetype/msttcorefonts/Arial.ttf'
fntYU=ImageFont.truetype(fonttype,150)
i=0
打开(文件路径)作为myfile时:
对于zip(myfile,范围(100))中的数据:
i+=1
打印(数据)
如果i==100:
操作系统(“echo完成10张照片>complete.txt”)

如果(len(data))使用
zip有什么需要?
这应该是有效的-

import os
filepath = 'names.txt'
with open(filepath, 'r') as myfile:
    for line in myfile:
        print(line.rstrip('\n'))
编辑:如果要在100行之后中断,请使用
枚举
。例如-

for index, line in enumerate(f):
  print(line)
  if index >= 100:
    break

你为什么要首先使用
zip
?而且问题标题中的错误在你的问题中没有提到如果你的
name.txt
中有一个换行符,它在
print
上显示是正常的。如果删除它,并且希望将输出保存在txt文件中,则可能不会显示所需的结果。请在最后澄清您真正想要的是什么:只有整洁的
打印
或正确的文本输出?是的,
数据
是一个
元组
,这是
zip
对象从其迭代器生成的。这很好,但如何打破循环我只想读取前100个名称,这就是为什么我首先使用Zip。为了帮助别人理解你的答案,考虑一下你的代码的简短描述以及它如何解决所发布的问题,当我读到前100个名字时,使用Zip只是为了打破循环。lines@user1448371检查编辑。您可以使用enumerate来实现这一点。
for index, line in enumerate(f):
  print(line)
  if index >= 100:
    break
import os
import sys
filepath = 'names.txt'
i=0
with open(filepath) as myfile:
    for data in myfile:
        i+=1
    print (data.strip())