对不起,如果这是发布此信息的错误区域。自从我触摸python(一般代码)以来已经有一段时间了,所以我提出的代码很可能很可怕,但是它不会将变量liniaile line1 and line2写入userdata.py文件,我无法弄清楚为什么会有任何帮助,感谢。欢呼
#import
import os
#
runstartText = 'Start success'
print(runstartText)
#setting values
file1 = './data'
file2 = './data/userpass'
file3 = './data/userpass/access.py'
newUserTEXT1 = 'Please input a valid email, username and password'
#checking/creating directorys
if not os.path.exists(file1):
os.makedirs(file1)
print('Created', file1)
if not os.path.exists(file2):
os.makedirs(file2)
print('Created', file2)
#def
def newUser():
print(newUserTEXT1)
username = input('Enter New System Username: ')
password = input('Enter New System Password: ')
passwordConfirm = input('Re-Enter New System Password: ')
if password == passwordConfirm:
print('Username and Password Stored')
line1 = 'username = ', username
line2 = 'username = ', password
apples = 1
if apples == 1:
userdatafile = open('USERDATA.py', 'w+')
userdatafile.writelines([line1, line2,])
userdatafile.close()
#-> store data
#-> to login
if password != passwordConfirm:
print('ERROR: Passwords do not match, please retry')
#-> restart newUser string
def login():
from USERDATA import username, password
print('Please Enter Username and Password:')
usernameTEMP = input('Username: ')
if usernameTEMP == username:
passwordTEMP = input('Password: ')
if passwordTEMP == password:
print('Successful Login!')
# -> to login
在您的代码中,您从未真正调用newUser()
。我添加了一个电话并获取错误:
line 37, in newUser
userdatafile.writelines([line1, line2,])
TypeError: write() argument must be str, not tuple
因此,我们应该用字符串userdatafile.writelines("".join(line1).join(line2))
userdatafile.writelines([line1, line2,])
一切都应该按预期工作。
正如Hoog已经指出的那样,最重要的问题是您没有调用newUser
函数。始终以问题和不必要的细节显示所有相关代码。
我在代码中看到的下一个最大的问题是,您不是在构建字符串来写入文件。我猜line1
和line2
的定义应该这样读:
line1 = 'username = ' + username + 'n'
line2 = 'password = ' + password + 'n'
一个重要的警告:我希望您只作为练习才能做到这一点。这甚至没有正确处理帐户数据的正确方法。