簡體   English   中英

如何從文本文件中逐行讀取變量並將其拆分

[英]how to read a variable line by line from a text file and split it python

我正在嘗試創建一個注冊菜單,該菜單中將使用您的用戶名和密碼,然后將它們保存到文本文本文件中的新行中,以便在使多個帳戶染病后有多行分別包含一個用戶名和一個密碼。 然后我要逐行讀取文件,並將用戶名和密碼分成兩個變量(u和p),將u和p保存到sqlite3中的數據庫中,然后重復下一行直到所有行都保存到數據庫中。 但是我無法弄清楚這一點,無論我嘗試什么,將值解壓縮到太多或更少都會出錯。 我認為每行末尾的\\ n可能是問題之一。 任何幫助表示贊賞,謝謝。 這是代碼:

import time
import sqlite3
import os


db2 = sqlite3.connect('pass.db')
cur = db2.cursor()

def sign_up():
    global cur

    details = '1'

    with open('username','a') as user:

        cur.execute('CREATE TABLE IF NOT EXISTS pass (username TEXT, password TEXT)')

        username = input('please enter a username:')
        username = username.title()


        password = ''
        password2 = '.'

        while password != password2 or len(password) < 6 or password.isalnum() == False:
            password = input('please enter a password with AT LEAST 6 CHARACTERS AND ONE NUMBER:')
            password2 = input('please confirm your password:')
        user.write(username + ',' + password + ',' + '\n')



    with open('username','r') as user:
        hello = ''.join(user.readlines())
        print (hello)

        for line in hello:
            details = user.readline()
            details = ''.join(details)
            print (details)
            u, p = details.split(',')
            cur.execute('INSERT INTO pass (username, password) VALUES (?, ?)',(u, p,)) 
        print(u)
        print(p)

    cur.execute('SELECT username FROM pass WHERE username = ?',(username,))
    for row in cur:
        print(row)

sign_up()

問題是您正在hello 迭代時,您正在迭代字符串中的字符,當然您不能分割字符。

用以下details = ''.join(details)替換details = ''.join(details)代碼

details = details.strip()
if details != '':
    u, p = details.split(',')            
    cur.execute('INSERT INTO pass (username, password) VALUES (?, ?)',(u., p,)) 

使用strip()或lstrip()函數將刪除“ \\ n”

謝謝大家,我知道這絕不是存儲密碼或其他任何東西的最佳方法,但是它的用途是什么,我一直在google上嘗試尋找更好的東西,但是出現的一切都不是基本的,還是我的水平尚不了解,密碼的實際安全性對於將其用於什么用途並不重要。

我也使用此代碼:

import time

導入sqlite3導入操作系統

db2 = sqlite3.connect('pass.db')cur = db2.cursor()

def sign_up():全局cur

details = '1'

with open('username','a') as user:

    cur.execute('CREATE TABLE IF NOT EXISTS pass (username TEXT, password TEXT)')

    username = input('please enter a username:')
    username = username.title()


    password = ''
    password2 = '.'

    while password != password2 or len(password) < 6 or password.isalnum() == False:
        password = input('please enter a password with AT LEAST 6 CHARACTERS AND ONE NUMBER:')
        password2 = input('please confirm your password:')
    user.write(username + ',' + password + ',' + '\n')



with open('username','r') as user:

    details = user.readline()
    details = details.strip()
    print(details)
    while details !=  '':
        if details != '':
            u, p = details.split(',',1)            
            cur.execute('INSERT INTO pass (username, password) VALUES (?, ?)',(u, p,))
            details = user.readline()
            details = details.strip()

cur.execute('SELECT * FROM pass')
for row in cur:
    print(row)
cur.execute('SELECT username FROM pass WHERE username = ?',(username,))
data = cur.fetchall()
if len(data) == 0:
    sign_up()

注冊()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM