簡體   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