[英]Error when removing a line from a .txt file
猜测谁在学校玩游戏,却找不到从.txt棋友中删除行的方法。 我不断收到以下错误:
<_io.TextIOWrapper name='characters.txt' mode='r' encoding='cp1252'>
<_io.TextIOWrapper name='characters.txt' mode='r' encoding='cp1252'>
<_io.TextIOWrapper name='characters.txt' mode='r' encoding='cp1252'>
这是代码:
information = open("characters.txt","r")
hair = input("Does your character have black hair?") #Asks for input under variable name hair
if hair == "yes":
for line in lines: #Breaks it down into individual lines
if line.split(',')[1] == "Black hair":
lines.remove(line)
print(information)
那不是错误。 它是打开文件对象的字符串表示形式:
>>> open('a.txt')
<_io.TextIOWrapper name='a.txt' mode='r' encoding='cp1252'>
>>>
如果要打印此文件的内容,则需要调用其read
方法:
print(information.read())
read
方法会将文件的所有内容读入字符串。 但是,如果只想一行,请使用readline
方法。
您可能不想打印information
但不清楚要打印什么。
features = dict()
with open("characters.txt","r") as information:
for line in information:
_, haircolor = line.split(',')
features[haircolor] = line
hair = input("Does your character have black hair?")
if hair == "yes":
for entry in features['Black hair']:
print 'Character could be {}'.format(entry)
也许在这一点上,您可能想问另一个问题,以便基于其他一些区别功能来减少剩余的条目。 您可能应该将主循环设计为要查询的功能的循环,而不是创建一个冗长的重复程序,一次只请求一个功能。 当您留下一个条目时,您可以停止循环(或者如果您最终得到零条目,则您将无法猜测)。
就其价值而言,您的要素表示似乎不尽如人意,但是由于您没有对其进行描述,因此这只是一个快速的印象。 (如果您至少简短地描述了程序的相关部分,则可能会得到更好的答案。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.