繁体   English   中英

从.txt文件中删除行时出错

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM