[英]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.