AttributeError:' _io.TextIOWrapper'对象没有属性' split'错误

时间:2018-06-13 18:17:47

标签: python

当我运行此代码时,我收到错误AttributeError:' _io.TextIOWrapper'对象没有属性' split'

任何帮助将不胜感激

#python3.5
print("WELCOME TO THE CLEVERBUY SYSTEM!")
productArray= []
productsFile = open("products.txt","r")
print (productsFile.split(","))
login = False
while login == False:
    FName = input ("ENTER FIRST NAME - ")
    custID = input ("ENTER CUSTOMER ID - ")
    email = input ("ENTER E-MAIL - ")
    if custID in productArray:
        if "@" not in email:
            print ("incorrect e-mail")
        else:
            if "." not in email:
                print ("incorrect e-mail")
            else:
                if FName.isalpha():
                    print ("Welcome")
                    login = True
                else:
                    print("incorrect first name")
    else:
        print("customer ID not found in system")        

1 个答案:

答案 0 :(得分:0)

您尚未读取文件以返回具有文件对象的字符串。

  

要读取文件的内容,请调用f.read(size),它读取一些数据并将其作为字符串(在文本模式下)或字节对象(在二进制模式下)返回。 size是可选的数字参数。当省略大小或为负时,将读取并返回文件的全部内容;如果文件的大小是机器内存的两倍,那么这就是你的问题。否则,最多读取并返回大小字节。如果已到达文件末尾,f.read()将返回一个空字符串('')。

请参阅this page

你只需阅读它就可以了:

file = open("products.txt","r")
productsFile = file.read()
print (productsFile.split(","))

不要忘记关闭文件:

file.close()

或更好的练习:

with open("products.txt","r") as file:
    productsFile = file.read()

这将自动为您关闭文件。

'_io.TextIOWrapper'是打开文件时返回的内容(但未读/写)。您可以使用交互式解释器对此进行测试:

>>>open('file.txt', 'r')
<_io.TextIOWrapper name='file.txt' mode='r' encoding='cp1252'>

您可以从中确定三件事:

  • 文件名。
  • 编码。
  • 已设置open()的模式。

以下是阅读文件的tutorial from the documentation