Сава-данные Python в TXT-файл - PullRequest
0 голосов
/ 06 мая 2018

У меня проблема с созданием полной обработки кода Python. Мне нужно, чтобы все функции данных в Python были сохранены в текстовом файле. Ниже моя кодировка.

def getListFromFile(fileName):
 infile = open(fileName,'r')
 desiredList = [line.rstrip() for line in infile]
 infile.close()
 return desiredList   

def main():
 staffRegistration()
 staffLogin()

 regList = getListFromFile("registration.txt")
 createSortedFile(regList, "afterreg.out")
 loginList = getListFromFile("login.txt")
 createSortedFile(userLogin, "afterlogin.out")

 checkFileRegistration()
 checkFileLogin()

def checkFileRegistration():
 print("\nPlease check afterreg.out file")

def checkFileLogin():
 print("\nPlease check afterlogin.out file")

def staffRegistration():
 regList = []
 name = input("Name: ")
 s = int(input("Staff ID (e.g 1111): "))
 regList.append(s)
 s = int(input("Staff IC (without '-'): "))
 regList.append(s)
 s = int(input("Department - 11:IT Dept 12:ACC/HR Dept 13:HOD 41:Top 
 Management (e.g 1/2/3/4): "))
 regList.append(s)
 s = int(input("Set username (e.g 1111): "))
 regList.append(s)
 s = int(input("Set Password (e.g 123456): "))
 regList.append(s)

 f = open("registration.txt",'w')
 f.write(name)
 f.write(" ")
 for info in regList:
    f.write("%li "%info)
 f.close

 f1 = open("afterreg.out",'w')
 f1.writelines("Registration Successful\n\n")
 f1.close()

def staffLogin():
 serLogin = input("\nProceed to login - 1:Login 2:Cancel (e.g 1/2): ")
 if userLogin == "1":
    username = input("\nUsername (e.g 1111): ")
    l = int(input("Password: "))
 if userLogin == "2":
    print("\nLogin cancelled")

 f = open("login.txt",'w')
 f.write(username)
 f.write(" ")
 for info in userLogin:
    f.write("%li "%info)
 f.close

 f1 = open("afterlogin.out",'w')
 f1.writelines("Logged in successful")
 f1.close()

def createSortedFile(listName, fileName):
 listName.sort()
 for i in range(len(listName)):
    listName[i] = listName[i] + "\n"      
    outfile = open(fileName,'a')
    outfile.writelines(listName)

 outfile.close() 

main()

На самом деле, эта программа должна иметь пять требований. Сначала staffRegistration(), staffLogin(), staffAttendance(), staffLeaveApplication(), approval(), но я выполнил только два требования и застрял на staffLogin(). Мне нужно, чтобы каждая функция была сохранена в текстовом файле (я имею в виду данные в функции).

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

В функции staffLogin() много проблем. например результат первого input() связан с serLogin, но это должно быть userLogin.

Если это исправлено, пароль читается пользователем, но с ним ничего не делается. Пароль должен рассматриваться как целое число?

Кроме того, если пользователь вводит 2 при первом запросе, код не установит username, но все равно попытается записать username в файл. Это вызовет исключение NameError.

Наконец, код пытается записать символы в userLogin в файл, как если бы они были целыми числами. Мало того, что это не сработает, это не имеет смысла. Возможно, это должна быть запись пароля в файл?

0 голосов
/ 06 мая 2018

В строке 32 вы пытаетесь преобразовать строку в целое число. Кроме того, в вашей основной функции у вас есть неразрешенная переменная userLogin. Другая проблема в строке 43 (функция staffLogin). Вы хотите написать длинное целое число, но передаете строку. Я пытался исправить ваш код, за исключением userLogin в основном.

def getListFromFile(fileName):
 infile = open(fileName,'r')
 desiredList = [line.rstrip() for line in infile]
 infile.close()
 return desiredList

def main():
 staffRegistration()
 staffLogin()

 regList = getListFromFile("registration.txt")
 createSortedFile(regList, "afterreg.out")
 loginList = getListFromFile("login.txt")
 createSortedFile(userLogin, "afterlogin.out")

 checkFileRegistration()
 checkFileLogin()

def checkFileRegistration():
 print("\nPlease check afterreg.out file")

def checkFileLogin():
 print("\nPlease check afterlogin.out file")

def staffRegistration():
 regList = []
 name = input("Name: ")
 s = int(input("Staff ID (e.g 1111): "))
 regList.append(s)
 s = int(input("Staff IC (without '-'): "))
 regList.append(s)
 s = input("Department - 11:IT Dept 12:ACC/HR Dept 13:HOD 41:Top  Management (e.g 1/2/3/4): ")
 regList.append(s)
 s = int(input("Set username (e.g 1111): "))
 regList.append(s)
 s = int(input("Set Password (e.g 123456): "))
 regList.append(s)

 f = open("registration.txt",'w')
 f.write(name)
 f.write(" ")
 for info in regList:
    f.write("%li "%info)
 f.close

 f1 = open("afterreg.out",'w')
 f1.writelines("Registration Successful\n\n")
 f1.close()

def staffLogin():
 userLogin = input("\nProceed to login - 1:Login 2:Cancel (e.g 1/2): ")
 if userLogin == "1":
    username = input("\nUsername (e.g 1111): ")
    l = int(input("Password: "))
 if userLogin == "2":
    print("\nLogin cancelled")

 f = open("login.txt",'w')
 f.write(username)
 f.write(" ")
 for info in userLogin:
    f.write("%s "%info)
 f.close

 f1 = open("afterlogin.out",'w')
 f1.writelines("Logged in successful")
 f1.close()

def createSortedFile(listName, fileName):
 listName.sort()
 for i in range(len(listName)):
    listName[i] = listName[i] + "\n"
    outfile = open(fileName,'a')
    outfile.writelines(listName)

 outfile.close()

main()
...