Pythonはファイル操作でXX情報管理システムの例を実現します。


前に書く
皆さん、こんにちは、私は初めてpythonで一学期勉強しました。期末は卒業生の情報管理システムの大宿題を完成します。前回は開発の実現の要求をよく見ていませんでしたので、簡単な卒業生情報管理システムを実現しました。今回は書類を使ってデータを保存して実現する卒業生情報管理システムを整理しました。初めてpythonを勉強したので、pythonの書き方はまだよく分かりません。前はc、c+++を勉強していました。これは書いたのがc/c++の内味があると思います。
1.excel.xlsxを使ってデータを保存して、卒業生情報管理システムを実現します。2.文書ドキュメントを使って、txt保存データを使って、卒業生情報管理システムを実現します。
コードについて詳しく紹介します。
一、エクセル表の操作に対して、卒業生情報管理システムを実現する。
開発要望
1.python言語を採用し、XX情報管理システムを実現する。
2.基本的な添削の基本機能を実現し、並べ替えなどの検索操作も追加できます。3.ファイルを使ってデータを保存します。(キーボードから入力するのではなく)
4.各機能インターフェースの循環呼び出し環境及び
ソフトウェアを開発する
1.python 3.7.0バージョン
2.pycharm 2019中国語版
一、関数モジュールの設計:
1.メイン関数モジュール
実装機能
  • 検索卒業生情報リスト
  • 卒業生情報を追加します。
  • 卒業生情報を修正する
  • 卒業生情報を削除します。
  • 卒業生情報ランキング
  • 卒業生情報管理システムを終了しました。
    
    def main(): #    
      arry = [0, 1, 2, 3, 4, 5] #                 
      Menu() #      
      while 1:
        a = input("   : ")
        if a.isdigit() and int(a) in arry: #                                      
          a = int(a)
          while a:
            if a == 1:
              PrintStudentList() #            
              Menu()
              break
            if a == 2:
              AddStudent() #          
              Menu()
              break
            if a == 3:
              ChangeStudent() #          
              Menu()
              break
            if a == 4:
              DeleteStudent() #          
              Menu()
              break
            if a == 5:
              SortData() #          
              Menu()
              break
            elif a > 5 or a < 0:
              print("    !")
              break
    
          if a == 0: #  0            
            print("     !")
            exit()
        else:
          print("   0--5!")
    
    
    main()
    ここではpythonの辞書の知識はまだ習っていませんので、pyhttonの中にswitchとcaseがないので、このifを使って判断します。煩雑ですが、見たところ分かりやすいです。
    二、データファイルの設計
    ここではファイルを使ってデータを保存しますので、最初に考えたのはエクセル表です。このようなxlsxファイルの保存データは一目瞭然です。そこで今回はエクセル表を選んでデータを保存して、書き込み、読み取り、修正、削除などの基本機能があります。
    主な情報:
    今回実現したのは卒業生情報管理システムで、卒業生に設計された個人情報は以下の通りです。
    学名は電話学年、就職先の会社のメールアドレスです。

    エクセル表の使用については二つのカバンを導入する必要があります。
    
    from openpyxl import Workbook #      excel     
    from openpyxl import load_workbook #           excel    
    ここの導入に失敗したら、自分でマニュアルでopenpyxlをダウンロードする方法が必要かもしれません。具体的には以下の通りです。
    設定をクリックして自分の項目をクリックします。一番目のオプションをクリックしてください。ページの右側のプラス記号をクリックしてください。インポートしたいカバンを入力してください。左下のinstall Packageをクリックして、インストールが完了します。

    2.卒業生情報モジュールを追加する
    キーボードから入力した情報を取得し、情報チェックが成功したら、まずリストに情報を保存し、最後にリスト全体をエクセルテーブルに挿入して保存します。このように書き込みしやすいです。そうしないと、頻繁に開いてファイルを閉じるのは面倒です。エラーが発生しやすいです。
    例えば、学号IDを下に挿入します。
    まず、空白のリストを作成してから、学籍番号をチェックします。長さの要求や、挿入されたものと表の中のものが重複しているかどうかを確認します。チェックが成功したら学籍番号をリストに保存します。
    
     r = [] #                   excel  
      ID = None
      wb = load_workbook('StudentList.xlsx')
      sheet = wb.active
      id = input("     :")
      if CheckIdIsRight(id):
        while 1:
          id = input("        !")
          if not CheckIdIsRight(id):
            ID = id
            break
      else:
        ID = id
      r.append(ID) #     ID      
    その他の情報は順次類推します。
    最後にリストをexcelテーブルに挿入し、ファイルを閉じて保存します。
    
     sheet.append(r) #         excel             
      wb.close()
      wb.save('StudentList.xlsx')
    3.卒業生情報検索モジュールを検索する

    この機能は主に検索と検索の機能を実現します。
    例えば、卒業生の情報を調べます。
    
    def PrintAll():
      wb = load_workbook('StudentList.xlsx') #          
      sheet = wb.active #                   
      for row in sheet.rows: #      
        for cell in row: #          
          print(cell.value, end="   ") #             
        print()
      print()
    各セルの順に印刷するだけでいいです。
    例えば、学籍番号でその卒業生の情報を調べます。
    
     def SelectById():
        id = input("          :")
        if id.isdigit() and not CheckIdIsRight(id):
          id1 = int(id) #     str       int   
          wb = load_workbook('StudentList.xlsx') #          
          sheet = wb.active #                   
          r = FindId(id1)
          for i in range(1, 10):
            print(sheet.cell(1, i).value, end="  ") #         
          print()
          for i in range(1, 10):
            print(sheet.cell(r, i).value, end="  ") #     id     
          print()
        else:
          print("      !")
    まず、入力された学号は一連の数字ではなく、調べたい学生の学号が存在すると判断すべきです。ここでは学号を17000万円のような数字で指定しています。pythonはデフォルトinputで入力したのはstr文字列のタイプです。ここでは入力ミスを防止して、プログラムが崩壊したので、いくつかのチェックを入れました。適法を確認してから、int型の変数に変換して使用します。
    具体的には、findidの関数を通じて学号のある行に戻ってきます。この行の情報をプリントしてもいいです。学生情報をプリントしながら、印字ヘッドの情報を忘れないようにしてください。そうすると、より鮮明に見えます。
    4.卒業生情報モジュールを修正する

    学生情報を修正する前に、入力された学籍番号もチェックし、検証が完了したら関連情報の修正を行います。
    修正の基本的な方法は、学号でその学生の行を見つけ、特定の列の情報を修正(直接割当)し、最後にファイルに保存することです。
    名前を変更する
    
    def changename(row, wb): #      # row           wb      
        name = input("          :")
        sheet.cell(row, 2, name)
        wb.save('StudentList.xlsx')
    5.卒業生の情報ランキング

    ここで並べ替えは主に泡立て順序のアルゴリズムを使ってデータを並べ替えています。pythonには内蔵の並べ替え計算法がありますが、ここでは自分で並べ替えを実現しました。並べ終わったら昇順のリストを反転して降順のリストを得ることもできます。ある項目の単一データを並べ替えるため、並べ替えの結果はすべての情報をプリントアウトすることが要求されるので、まずあるデータの順序リストを得て、リストに対応する情報をプリントすればいいです。
    例えば、学番号順に並べ替えます。
    泡の並べ替え:
    
    def BubbleSort(l2): #                     
      for i in range(0, len(l2)):
        count = 0
        for j in range(1, len(l2)-i):
          if int(l2[j - 1]) > int(l2[j]):
            temp = l2[j]
            l2[j] = l2[j - 1]
            l2[j - 1] = temp
            count = count + 1
        if count == 0: #                   
          return l2
      return l2 #          
    学号によって小さい時から大きい順に並べられ、学生情報を印刷します。
    
    def GetAllStudentById(): #             (  )
      l = [] #         
      wb = load_workbook('StudentList.xlsx')
      sheet = wb.active
      for column in list(sheet.columns)[0]:
        l.append(column.value) #                   
      l2 = l[1:] #                          l2
      l3 = BubbleSort(l2) #        
      # 3        
      for i in range(1, 10):
        print(sheet.cell(1, i).value, end="   ") #         
      print()
      for i in range(0, len(l3)): #                       
        r = FindId(l3[i]) #     
        for j in range(1, 10):
          print(sheet.cell(r, j).value, end="    ") #     id     
        print()
    注意:学号は唯一なので、道を探して、行番号を通して、ある行の方向付け情報を印刷します。しかし、学年のように、月給情報は重複する可能性があります。学号のように調べたり、印刷したりすることはできません。でも、先に年級のリストを並べて、それから重いものに並べてもいいです。これで満足できると思います。順番を決めた学年リストの中の学年に対応する学生は、情報を全部プリントします。
    6.卒業生情報の削除
    非常に簡単です。削除する学生の学号を入力して、学号検査が合法的で、存在した後、該当行を見つけて、その行のデータを削除すればいいです。
    
    def DeleteStudent(): #       
      PrintAll()
      id = input("           :")
      if not CheckIdIsRight(id): #      id      StudentList.xlsx 
        print("    !")
        id = int(id)
        row = FindId(id) #        
        wb = load_workbook('StudentList.xlsx')
        sheet = wb.active
        isdelete = input("         ?     :")
        if isdelete == ' ':
          sheet.delete_rows(row, 1) #     
          wb.save('StudentList.xlsx')
          print("    !")
        else:
          print("    !")
    
      else:
        print("      !")
    三、テスト
    1.検索テストを検索する




    2.テストの追加

    3.試験の変更

    4.情報並べ替えテスト



    5.情報の削除テスト



    四、ソースコード
    
    from openpyxl import Workbook #      excel     
    from openpyxl import load_workbook
    
    IsJob = [' ', ' ']
    
    
    def Menu(): #      
      print(end=" " * 45)
      print('*' * 22)
      print(end=" " * 45)
      print("*          : 1 *")
      print(end=" " * 45)
      print("*          : 2 *")
      print(end=" " * 45)
      print("*          : 3 *")
      print(end=" " * 45)
      print("*          : 4 *")
      print(end=" " * 45)
      print("*          : 5 *")
      print(end=" " * 45)
      print("*        :  0 *")
      print(end=" " * 45)
      print('*' * 22)
    
    
    def SelectStudentMenu():
      print(end=" " * 45)
      print('*' * 25)
      print(end=" " * 45)
      print("*          :  1 *")
      print(end=" " * 45)
      print("*          :  2 *")
      print(end=" " * 45)
      print("*          :  3 *")
      print(end=" " * 45)
      print("*          :  4 *")
      print(end=" " * 45)
      print("*          :  0 *")
      print(end=" " * 45)
      print('*' * 25)
    
    
    def FindId(id): #  excel     id          
      i = 0
      wb = load_workbook('StudentList.xlsx')
      sheet = wb.active
      for column in list(sheet.columns)[0]: #           
        i = i + 1
        if id == column.value: #      
          return i #     
    
    
    def BubbleSort(l2): #                     
      for i in range(0, len(l2)):
        count = 0
        for j in range(1, len(l2)):
          if int(l2[j - 1]) > int(l2[j]):
            temp = l2[j]
            l2[j] = l2[j - 1]
            l2[j - 1] = temp
            count = count + 1
        if count == 0: #                   
          return l2
      return l2 #          
    
    
    def GetAllStudentByGadeOrMoney(x):
      l = [] #                    
      wb = load_workbook('StudentList.xlsx')
      sheet = wb.active
      for column in list(sheet.columns)[x]:
        l.append(column.value) #                         
      l2 = l[1:] #                          l2
      l3 = BubbleSort(l2) #              # 3        
      i = 1
      l3.reverse() #                   
      while i < len(l3): #               
        if l3[i] == l3[i - 1]:
          del l3[i - 1]
        else:
          i = i + 1
      for i in range(1, 10):
        print(sheet.cell(1, i).value, end="   ") #         
      print()
      j = 0
      while j < len(l3): #               excel            
        for row in sheet.rows: #      
          for cell in row: #          
            if cell.value == l3[j]: #             
              for cell in row:
                print(cell.value, end="    ") #          
              print()
        j = j + 1
      print()
    
    
    def GetAllStudentById(): #             (  )
      l = [] #         
      wb = load_workbook('StudentList.xlsx')
      sheet = wb.active
      for column in list(sheet.columns)[0]:
        l.append(column.value) #                   
      l2 = l[1:] #                          l2
      l3 = BubbleSort(l2) #        
      # 3        
      for i in range(1, 10):
        print(sheet.cell(1, i).value, end="   ") #         
      print()
      for i in range(0, len(l3)): #                       
        r = FindId(l3[i]) #     
        for j in range(1, 10):
          print(sheet.cell(r, j).value, end="    ") #     id     
        print()
    
    
    def PrintAll():
      wb = load_workbook('StudentList.xlsx') #          
      sheet = wb.active #                   
      for row in sheet.rows: #      
        for cell in row: #          
          print(cell.value, end="   ") #             
        print()
      print()
    
    
    def PrintStudentList(): #   excel      
    
      def SelectById():
        id = input("          :")
        if id.isdigit() and not CheckIdIsRight(id):
          id1 = int(id)
          wb = load_workbook('StudentList.xlsx') #          
          sheet = wb.active #                   
          r = FindId(id1)
          for i in range(1, 10):
            print(sheet.cell(1, i).value, end="  ") #         
          print()
          for i in range(1, 10):
            print(sheet.cell(r, i).value, end="  ") #     id     
          print()
        else:
          print("      !")
    
      def SelectByGrade():
        wb = load_workbook('StudentList.xlsx') #          
        sheet = wb.active #                   
        grade = input("         :")
        if grade.isdigit():
          for i in range(1, 10):
            print(sheet.cell(1, i).value, end="  ") #         
          print()
          #          
          for row in sheet.rows: #      
            for cell in row: #          
              if cell.value == int(grade): #             
                for cell in row:
                  print(cell.value, end="  ") #          
                print()
          print()
        else:
          print("     !")
    
      def SelectByIsJob():
        wb = load_workbook('StudentList.xlsx') #          
        sheet = wb.active #                   
        isjob = input("                :")
        if isjob in IsJob: #         
          if isjob == ' ': #             
            for i in range(1, 10):
              print(sheet.cell(1, i).value, end="  ") #         
            print()
            for row in sheet.rows: #      
              for cell in row: #          
                if cell.value == ' ': #         ' '       
                  for cell in row:
                    print(cell.value, end="  ") #          
                  print()
            print()
          else: #    ' '         
            for i in range(1, 10):
              print(sheet.cell(1, i).value, end="  ") #         
            print()
            for row in sheet.rows: #      
              for cell in row: #          
                if cell.value == ' ': #         ' '          
                  for cell in row:
                    print(cell.value, end="  ") #          
                  print()
            print()
        else:
          print("    !")
    
      arry = [0, 1, 2, 3, 4]
      while 1: #         
        SelectStudentMenu()
        a = (input("          :"))
        if a.isdigit() and int(a) in arry:
          a = int(a)
          while a:
            if a == 1:
              PrintAll()
              break
            if a == 2:
              SelectById()
              break
            if a == 3:
              SelectByGrade()
              break
            if a == 4:
              SelectByIsJob()
              break
            if a < 0 or a > 4:
              print("    !     :")
              break
          if a == 0:
            break
        else:
          print("   0--4!")
    
    
    def CheckIdIsRight(id1): #     ID          
      wb = load_workbook('StudentList.xlsx')
      sheet = wb.active
      if id1.isdigit():
        id2 = int(id1)
        for column in list(sheet.columns)[0]:
          if id2 == column.value:
            print("    ")
            return False
        if id2 < 1000000000 or id2 > 10000000000:
          print("       !")
          return True
      else:
        print("       !")
        return True
    
    
    def AddStudent(): #         
      r = [] #                   excel  
      ID = None
      wb = load_workbook('StudentList.xlsx')
      sheet = wb.active
      id = input("     :")
      if CheckIdIsRight(id):
        while 1:
          id = input("        !")
          if not CheckIdIsRight(id):
            ID = id
            break
      else:
        ID = id
      r.append(ID) #     ID      
      name = input("       :") #       
      r.append(name) #          
      tell = input("         :")
      while 1:
        if len(tell) != 11:
          print("         !     :")
          tell = input()
          if len(tell) == 11:
            print("    !")
            break
        if len(tell) == 11:
          break
      r.append(tell) #            
      grade = int(input("       :")) #       
      while 1:
        if grade < 2000: #            
          print("       !     :")
          grade = int(input())
          if grade >= 2000:
            print("    !")
            break
        if grade >= 2000:
          break
      r.append(grade) #          
      institute = input("       :") #       
      r.append(institute) #            
      isjob = input("      :   :   !") #               ' '       
      while 1:
        if isjob in IsJob:
          r.append(isjob)
          break
        else:
          print("         :")
          isjob = input()
      if r[5] == ' ': #       
        company = input("         ")
        r.append(company)
      else:
        company = ' '
        r.append(company)
    
      e_mail = input("         :") #       
      r.append(e_mail) #              
      if r[5] == ' ':
        money = input("       :") #       
        r.append(money) #                  
      if r[5] == ' ':
        money = 0 #          0
        r.append(money)
      sheet.append(r) #         excel             
      wb.close()
      wb.save('StudentList.xlsx')
    
    
    def StudentPersonalMsg(): #         
      print(end=" " * 45)
      print('*' * 23)
      print(end=" " * 45)
      print("*          : 1 *")
      print(end=" " * 45)
      print("*          : 2 *")
      print(end=" " * 45)
      print("*          : 3 *")
      print(end=" " * 45)
      print("*          : 4 *")
      print(end=" " * 45)
      print("*          : 5 *")
      print(end=" " * 45)
      print("*          : 6 *")
      print(end=" " * 45)
      print("*        :  0 *")
      print(end=" " * 45)
      print('*' * 23)
    
    
    def ChangeStudent(): #         
      def changename(row, wb): #      # row           wb      
        name = input("          :")
        sheet.cell(row, 2, name)
        wb.save('StudentList.xlsx')
    
      def changetell(row, wb): #                  
        tell = input("           :")
        while 1:
          if len(tell) != 11:
            print("         !     :")
            tell = input()
            if len(tell) == 11:
              print("    !")
              break
          if len(tell) == 11:
            break
        sheet.cell(row, 3, tell)
        wb.save('StudentList.xlsx')
    
      def changeisjob(row, wb): #           
        IsJob = [' ', ' ']
        isjob = input("      :   :   !")
        while 1:
          if isjob in IsJob:
            sheet.cell(row, 6, isjob)
            wb.save('StudentList.xlsx')
            break
          else:
            print("         :")
            isjob = input()
    
      def changecompany(row, wb): #       
        if sheet.cell(row, 6).value == ' ': #       
          company = input("         :")
          sheet.cell(row, 7, company)
          wb.save('StudentList.xlsx')
        else:
          print("        :")
          changeisjob(row, wb)
          changecompany(row, wb)
    
      def changemail(row, wb): #         
        mail = input("          :")
        sheet.cell(row, 8, mail)
        wb.save('StudentList.xlsx')
    
      def changemoney(row, wb): #       
        if sheet.cell(row, 6).value == ' ': #       
          money = int(input("          :"))
          sheet.cell(row, 9, money)
          wb.save('StudentList.xlsx')
        else:
          print("             !")
          changeisjob(row, wb)
          changecompany(row, wb)
          changemoney(row, wb)
    
      PrintAll()
      arry = [0, 1, 2, 3, 4, 5, 6]
      id = input("             :")
      if not CheckIdIsRight(id): #         
        print("    !")
        row = FindId(id)
        wb = load_workbook('StudentList.xlsx')
        sheet = wb.active
        StudentPersonalMsg()
        while 1:
          a = input("   :")
          if a.isdigit() and int(a) in arry:
            a = int(a)
            while a > 0:
              if a == 1:
                changename(row, wb)
                print("    !")
                break
              if a == 2:
                changetell(row, wb)
                print("    !")
                break
              if a == 3:
                changeisjob(row, wb)
                print("    !")
                break
              if a == 4:
                changecompany(row, wb)
                print("    !")
                break
              if a == 5:
                changemail(row, wb)
                print("    !")
                break
              if a == 6:
                changemoney(row, wb)
                print("    !")
                break
              elif a > 6 or a < 0:
                print("    !")
                break
            if a == 0:
              break
          else:
            print("        0--6!")
            break
    
      else:
        print("        !")
    
    
    def DeleteStudent(): #       
      PrintAll()
      id = input("           :")
      if not CheckIdIsRight(id): #      id      StudentList.xlsx 
        print("    !")
        id = int(id)
        row = FindId(id) #        
        wb = load_workbook('StudentList.xlsx')
        sheet = wb.active
        isdelete = input("         ?     :")
        if isdelete == ' ':
          sheet.delete_rows(row, 1) #     
          wb.save('StudentList.xlsx')
          print("    !")
          PrintAll()
        else:
          print("    !")
    
      else:
        print("      !")
    
    
    def SortMenu():
      print(end=" " * 45)
      print('*' * 30)
      print(end=" " * 45)
      print("*              : 1 *")
      print(end=" " * 45)
      print("*              : 2 *")
      print(end=" " * 45)
      print("*              : 3 *")
      print(end=" " * 45)
      print("*         :      0 *")
      print(end=" " * 45)
      print('*' * 30)
    
    
    def SortData():
      SortMenu()
      arry = [0, 1, 2, 3]
      while 1:
        a = input("   : ")
        if a.isdigit() and int(a) in arry:
          a = int(a)
          while a:
            if a == 1:
              GetAllStudentById()
              SortMenu()
              break
            if a == 2:
              GetAllStudentByGadeOrMoney(3)
              SortMenu()
              break
            if a == 3:
              GetAllStudentByGadeOrMoney(8)
              SortMenu()
              break
            elif a > 3 or a < 0:
              print("    !")
              break
          if a == 0:
            break
        else:
          print("        0--3")
    
    
    def main(): #    
      arry = [0, 1, 2, 3, 4, 5]
      Menu() #      
      while 1:
        a = input("   : ")
        if a.isdigit() and int(a) in arry:
          a = int(a)
          while a:
            if a == 1:
              PrintStudentList()
              Menu()
              break
            if a == 2:
              AddStudent()
              Menu()
              break
            if a == 3:
              ChangeStudent()
              Menu()
              break
            if a == 4:
              DeleteStudent()
              Menu()
              break
            if a == 5:
              SortData()
              Menu()
              break
            elif a > 5 or a < 0:
              print("    !")
              break
    
          if a == 0: #  0    
            print("     !")
            exit()
        else:
          print("   0--5!")
    
    
    main()
    ファイル:

    注意:表のエクセルファイルをコードと同じディレクトリに置いてもいいです。ファイルを使う時に絶対パスを記入しないと、ファイルが開けられない、あるいは見つからないなどのエラーが発生します。システムの運行中にファイルを保存してクローズします。でないと、ファイルが開いている状態では、修正、挿入などの操作ができなくなり、エラーが発生します。
    二、文書ドキュメントでデータを保存することによって実現される卒業生情報管理システム
    基本的な考え方は上記と似ています。ここでは説明しなくなりました。以下のソースを添付します。
    ソース
    
    StudentInfo = ['  ', '  ', '  ', '    ', '      ', '    (+86)', '    ']
    
    
    def GetList(): #   StudentMsg.txt              
      fiel = open('StudentMsg.txt', 'r', encoding='utf-8')
      l = []
      for line in fiel:
        l.append(line.strip()) #        c          
      return l
    
    
    def PrintAllMsg(): #         
      l = GetList()
      print(StudentInfo)
      count = 0
      for i in range(0, len(l)): #            7     
     
        count = count + 1
        print(l[i], end="   ")
        if count % 7 == 0:
          print()
      print()
    
    
    def ModifyMenu():
      print('-' * 22)
      print("#        :   1 *")
      print("#        :   2 *")
      print("#          : 3 *")
      print("#          : 4 *")
      print("#          : 5 *")
      print("#          : 6 *")
      print("#        : 0 *")
      print('-' * 22)
    
    
    def ModifyMsg():
      def ModifyName(pos):
        f = open('StudentMsg.txt', 'r+', encoding='utf-8')
        flist = f.readlines()
        name = input("         :")
        name += '
    ' flist[pos + 1] = name f = open('StudentMsg.txt', 'w+', encoding='utf-8') f.writelines(flist) f.close() print(" !") def ModifySex(pos): Sex = [' ', ' '] f = open('StudentMsg.txt', 'r+', encoding='utf-8') flist = f.readlines() sex = input(" :") if sex in Sex: sex += '
    ' flist[pos + 2] = sex f = open('StudentMsg.txt', 'w+', encoding='utf-8') f.writelines(flist) f.close() print(" !") else: print(" !") print(" !") ModifySex(pos) def ModifyYear(pos): f = open('StudentMsg.txt', 'r+', encoding='utf-8') flist = f.readlines() year = input(" :") if int(year) > 2000: year += '
    ' flist[pos + 3] = year f = open('StudentMsg.txt', 'w+', encoding='utf-8') f.writelines(flist) f.close() print(" !") else: print(" !") print(" !") ModifyYear(pos) def Modifycompany(pos): f = open('StudentMsg.txt', 'r+', encoding='utf-8') flist = f.readlines() company = input(" :") company += '
    ' flist[pos + 4] = company f = open('StudentMsg.txt', 'w+', encoding='utf-8') f.writelines(flist) f.close() print(" !") def ModifyTell(pos): f = open('StudentMsg.txt', 'r+', encoding='utf-8') flist = f.readlines() tell = input(" :") if len(tell) == 11: tell += '
    ' flist[pos + 5] = tell f = open('StudentMsg.txt', 'w+', encoding='utf-8') f.writelines(flist) f.close() print(" !") else: print(" !") print(" !") ModifyTell(pos) def ModifyAddress(pos): f = open('StudentMsg.txt', 'r+', encoding='utf-8') flist = f.readlines() address = input(" :") address += '
    ' flist[pos + 6] = address f = open('StudentMsg.txt', 'w+', encoding='utf-8') f.writelines(flist) f.close() print(" !") PrintAllMsg() id = input(" :") if id in IsIdRight(): l2 = GetList() pos = l2.index(id) while 1: ModifyMenu() a = int(input(" : ")) while a: if a == 1: ModifyName(pos) break if a == 2: ModifySex(pos) break if a == 3: ModifyYear(pos) break if a == 4: Modifycompany(pos) break if a == 5: ModifyTell(pos) break if a == 6: ModifyAddress(pos) break if a == 0: # 0 break def DelMsg(): PrintAllMsg() id = input(" Id:") if id in IsIdRight(): pos = GetList().index(id) f = open('StudentMsg.txt', 'r+', encoding='utf-8') flist = f.readlines() for i in range(0, 7): del flist[pos] f = open('StudentMsg.txt', 'w+', encoding='utf-8') f.writelines(flist) f.close() print(" !") PrintAllMsg() else: print(" !") DelMsg() def IsIdRight(): # l1 = GetList() l2 = [] i = 0 while i < len(l1): l2.append(l1[i]) i = i + 7 return l2 def AddMsg(): # fiel = open('StudentMsg.txt', 'a', encoding='utf-8') def Inputid(): # id = (input(" :")) l1 = IsIdRight() if not (int(id) > 1000 and (id in l1)): fiel.write('
    ') fiel.writelines(id) else: if int(id) < 1000: print(" !") Inputid() if id in IsIdRight(): print(" !") Inputid() def Inputname(): # name = input(" :") fiel.write('
    ') fiel.writelines(name) def InputSex(): # sex = [' ', ' '] s1 = input(" ") if s1 in sex: fiel.write('
    ') fiel.writelines(s1) else: print(" !") InputSex() def InputGaduYear(): # year = (input(" :")) if int(year) > 2000: fiel.write('
    ') fiel.writelines(year) else: print(" !") InputGaduYear() def InputCompany(): # company = input(" :") fiel.write('
    ') fiel.writelines(company) def InputTell(): # tell = (input(" :")) if len(tell) == 11: fiel.write('
    ') fiel.writelines(tell) else: print(" !") InputTell() def InputAddress(): # add = input(" :") fiel.write('
    ') fiel.writelines(add) Inputid() Inputname() InputSex() InputGaduYear() InputCompany() InputTell() InputAddress() fiel.close() # def Menu(): # print('-' * 22) print("# : 1 *") print("# : 2 *") print("# : 3 *") print("# :4 *") print("# : 5 *") print("# 0 *") print('-' * 22) def FindMenu(): print('-' * 22) print("# : 1 *") print("# : 2 *") print("# 0 *") print('-' * 22) def FindStu(): def FindMsgById(): id = input(" :") if id in IsIdRight(): pos = GetList().index(id) flist = GetList() print(StudentInfo) for i in range(0, 7): print(flist[pos + i], end=" ") print() else: print(" !") FindMsgById() def FindMsgByName(): name = input(" :") if name in GetList(): pos = GetList().index(name) - 1 flist = GetList() print(StudentInfo) for i in range(0, 7): print(flist[pos + i], end=" ") print() else: print(" !") FindMsgByName() while 1: FindMenu() a = int(input(" : ")) while a: if a == 1: FindMsgById() break if a == 2: FindMsgByName() break if a == 0: break def main(): Menu() while 1: a = int(input(" : ")) while a: if a == 1: PrintAllMsg() Menu() break if a == 2: AddMsg() Menu() break if a == 3: ModifyMsg() Menu() break if a == 4: FindStu() Menu() break if a == 5: DelMsg() Menu() break if a == 0: # 0 exit() main()
    対応する簡単なテスト:



    対応するファイル:テキストファイルはコードファイルと同じディレクトリにあるべきです。

    注意:ここでは支店を使ってデータの保存を行います。データの正確な変更を容易にするために、行全体のデータを修正する必要がないので、面倒です。挿入と修正ももっと正確です。
    ここでPythonがファイル操作を使ってXX情報管理システムの一例を実現する記事を紹介します。Python XXに関する情報管理システムの内容は以前の文章を検索してください。または下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。