【问题标题】:Reading a list from a file in python 3从python 3中的文件中读取列表
【发布时间】:2013-11-25 15:21:20
【问题描述】:

在尝试为个人项目制作一个简单的注册/注册客户端应用程序时。我正在尝试从文件中加载用户列表,并将它们与可能的用户名进行比较。如果用户名已经存在,程序会给他们一个错误。

这是代码的精简克隆:

    u1 = str(input("Input username: "))
    t = open("userlistfile","r")
    userlist = t.readline()
    y = 0
    for x in range(0, len(userlist)-1):
        if userlist[y] == u1:
            print("\n !Error: That username (",u1,") is already taken!")
        y += 1

用户列表存储在一个文件中,以便可以再次打开、附加和保存,而无需存储在程序中。我当前的问题是用户列表保存为字符串而不是数组。有一个更好的方法吗?谢谢你。


编辑:感谢用户 lorenzo 提供的解决方案。我的朋友们告诉我要为那些想不通的人发布一个快速(非常简单)的副本。

新代码:

    u1 = str(input("Input username: "))
    t = open("userlistfile","r")
    userlist = t.read()              #Readline() changed to Read()
    userlist = userlist.split('--')  #This line is added
    y = 0
    for x in range(0, len(userlist)-1):
        if userlist[y] == u1:
            print("\n !Error: That username (",u1,") is already taken!")
        y += 1

示例文本文件内容:

smith123--user1234--stacky

此行将在 ('--') 分隔符处分隔字符串,并将每个拆分部分附加到一个数组中:

userlist = userlist.split('--')
#Is used so that this (in the text file)
Smith123--user1234--stacky
#Becomes (in the program)
userlist = ['Smith123','user1234','stacky']

抱歉,这篇文章太长了……发现它很有趣。再次感谢洛伦佐:D。

【问题讨论】:

  • 输入文件的格式是什么?你只读了一行。

标签: arrays file-io python-3.x


【解决方案1】:
 userlist = t.readline()

从文件中读取一行作为字符串。然后,迭代获取字符串中的字符而不是单词。

您应该能够使用字符串的 split() 方法或更通用的 re.split() 从字符串中获取字符串(单词)列表功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    • 2012-05-04
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多