繁体   English   中英

Append 行从文本文件到 python 中的列表,不带 '\n'

[英]Append lines from a text file to a list in python without '\n'

我目前正在学习 python 并且我有一个登录系统,它使用一个名为“用户”的文本文件来存储用户名。 我希望能够通过逐行读取文本并将其附加到 python 中的数组来更新此文件。 然后将数组写回到文本文件中,以便在下次打开程序时再次附加到数组中。

但是现在,由于每个用户名都写在不同的行中,当我将 append 写入我的数组时,它给了我:
用户名 = ['testing1\n', 'testing2']

这是我的代码:

import random
import operator
import shelve
import os
from os import system, name 
import time
from time import sleep

users = []
password = []

def clear():
    if name == 'nt':
        _ = system('cls')
    else:
        print("thisisweird.")

# start of login system

def loggedOut():
    status = input("Are you a registered user? y/n? Press q to quit ")
    if status == "y":
        oldUser()

    elif status == "n":
        newUser()

    elif status == "q":
        quit()


def loggedIn():
    menu()

def newUser():
    createLogin = input('Create a Username: ')
    
    if createLogin in users:
        print("\nUsername is taken")
    else:
        users.append(createLogin)
        createPwd = input("Create a Password: ")
        password.append(createPwd)
        print("\nRegister successful\n")
        loggedOut()

def oldUser():
    login = input("Enter username: ")
    pwd = input("Enter password:")

    if login in users and users[login] == pwd:
        print("\nWelcome,", login,"!")
        loggedIn()
    else:
        print("\nUsername or Password invalid\n")

def quit():
    print("Goodbye! The program will now exit")
    os.remove('./users/login.txt')
    f = open('./users/login.txt', 'w')
    for ele in users:
        f.write(ele+'\n')
    f.close()
    sleep(2)
    clear()
    exit()

#end of login system 

def loginsys():
    folder_check = os.path.isdir('./users')
    if (folder_check == True):
        file_check = os.path.isfile('./users/login.txt')
        if (file_check == True):
            f = open('./users/login.txt', 'r+')
            f1 = f.readlines()
            for ele in f1:
                users.append(ele)
            f.close()
            print(users)
            loggedOut()
        else:
            f = open('./users/login.txt', 'w')
            f.write('')
            f.close()
            loggedOut()
    else:
        os.mkdir('./users') 
        loginsys()

def menu():
    print("Hello World")

loginsys()

readlines()在每个文本行的末尾放置一个换行符。 您可以使用rstrip()将其删除:

f = open('./users/login.txt', 'r+')
f1 = f.readlines()
for ele in f1:
    users.append(ele.rstrip())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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