Я совершенно новый для Python (только начал его 5 часов назад), но у меня есть год опыта работы с Java. В любом случае, первая программа, которую я хотел сделать, создала бы своего рода «журнал» имен/дней рождения. Он запрашивает у Пользователя количество записей, затем имена и даты рождения. Это довольно просто и отлично работает. Каждый раз, когда вы запускаете программу, она добавляет новые имена/даты рождения в текстовый файл, поэтому предыдущие имена/даты рождения остаются неповрежденными, а новые появляются в конце. Однако я хотел иметь возможность сортировать эти записи по фамилии. Я успешно создаю способ сортировки их по фамилии (опять же, не для сложного), но он работает только в том случае, если это отдельная программа. Если я поместил код в конце моей оригинальной программы, он будет сортироваться так, как ожидалось, однако он не будет сортировать какие-либо новые записи, сделанные в программе, только записи из последнего запуска программы. Я закрыл файл и снова открыл его в коде после того, как были сделаны записи, однако он все равно не распознает сделанные изменения. Поскольку обе программы функционируют должным образом самостоятельно, что мне нужно сделать, чтобы реализовать эти две части кода в одной и той же программе? В качестве альтернативы, будет ли способ запустить вторую программу из первой программы?Как я могу читать свою программу, обновленную в текстовом файле?
Вот мой код программы (BirthDates.txt это текстовый файл, были записи хранятся):
#IDLE 1.2.4
#Begin Entries
fileobja=open("BirthDates.txt","a")
dates=int(raw_input("Number of entries to add:"))
count=0
while count<dates:
fileobja.write("*NEW ENTRY*")
firstName=raw_input("Enter user's first name:")
lastName=raw_input("Enter user's last name:")
DOB=raw_input("Enter user's date of birth (MM/DD/YYYY):")
print lastName+","+firstName+"\n"+DOB
fileobja.write("\n")
fileobja.write(lastName+", "+firstName+"\n")
fileobja.write("("+DOB+")"+"\n"+"__________\n")
#print "dates=",dates
#print "count=",count
count=count+1
#print "count=",count
fileobja.close
#End Entries
Это вторая программа:
#Begin Sorter
fileobjr=open("Birthdates.txt","r")
fileList=[]
tempString=""
tempStringCount=0
for line in fileobjr:
tempString="".join(line[0:])
#print "tempString="+tempString
fileList.append(tempString)
tempStringCount=tempStringCount+1
fileobjr.close
fileListLength=len(fileList)
#print fileListLength
chunks=(fileListLength)/4
sortCount=1
tempList=[]
while sortCount<fileListLength:
templine=fileList[sortCount]+fileList[sortCount+1]
tempList.append(templine)
sortCount=sortCount+4
writeCount=0
tempList.sort()
fileobjw=open("BirthDates.txt","w")
while writeCount<chunks:
#print tempList[writeCount]
fileobjw.write("*NEW ENTRY*\n")
fileobjw.write(tempList[writeCount])
fileobjw.write("__________")
fileobjw.write("\n")
writeCount=writeCount+1
fileobjw.close
#End Sorter