Python-Pythonの高度な文法のファイル操作を深く理解する


前言:この博文は主にPythonファイルの操作の書き方を説明して、Pythonの高級文法に属します.基础文法看:Python-Pythonの基础文法の全解を深く理解して、もっと多くの内容はブロガーのホームページにアクセスして、ありがとうございます!
文書ディレクトリ
  • 一、ファイル操作の役割
  • 二、ファイルの基本操作
  • 1. ファイル操作手順
  • 1.1
  • を開く
  • 1.1.1ファイルモード
  • を開く
  • 1.1.2クイック体験
  • 2.1ファイルオブジェクトメソッド
  • 1.2.1書き込み
  • 1.2.2
  • を読む
  • 1.2.3 seek()

  • 3.1閉鎖

  • 三、ファイルバックアップ
  • 1. ステップ
  • 2. コード実装
  • 3. 思考
  • 四、ファイルとフォルダの操作
  • 1. ファイル名の変更
  • 2. 削除ファイル
  • 3. フォルダ作成
  • 4. フォルダ
  • を削除
  • 5. 現在のディレクトリ
  • を取得
  • 6. デフォルトディレクトリ
  • を変更
  • 7. 取得ディレクトリリスト
  • 五、応用例
  • 六、総括

  • 一、ファイル操作の役割
    思考:ファイル操作には何が含まれていますか?
    答え:開く、閉じる、読む、書く、コピー...
    思考:ファイル操作の役割は何ですか?
    答:コンテンツの読み取り、書き込み、バックアップ...
    まとめ:ファイル操作の役割は、いくつかの内容(データ)を格納し、プログラムが次回実行されるときに直接使用することができ、再作成する必要がなく、時間と労力を節約することができます.
    二、ファイルの基本操作
    1.ファイル操作手順
  • ファイルを開く
  • 読み書き等の操作
  • ファイル
  • を閉じる
    注:ファイルを開いたり閉じたりするだけで、読み書き操作を行わないことができます.
    1.1オープン
    pythonでopen関数を使用すると、既存のファイルを開くか、次の構文で新しいファイルを作成できます.
    open(name, mode)
    

    name:開くターゲットファイル名の文字列です(ファイルが存在する特定のパスを含めることができます).
    mode:ファイルを開くモード(アクセスモード):読み取り専用、書き込み、追加などを設定します.
    1.1.1ファイルモードを開く
    を選択します.
    説明
    r
    読み取り専用でファイルを開きます.ファイルのポインタはファイルの先頭に配置されます.これが既定のモードです.
    rb
    読み取り専用のファイルをバイナリ形式で開きます.ファイルポインタはファイルの先頭に配置されます.これが既定のモードです.
    r+
    読み書き用のファイルを開きます.ファイルポインタはファイルの先頭に配置されます.
    rb+
    読み取り/書き込み用のファイルをバイナリ形式で開きます.ファイルポインタはファイルの先頭に配置されます.
    w
    書き込み用のファイルを開きます.ファイルがすでに存在する場合はファイルを開き、最初から編集を開始します.つまり、既存のコンテンツは削除されます.ファイルが存在しない場合は、新しいファイルを作成します.
    wb
    書き込み用のファイルをバイナリ形式で開きます.ファイルがすでに存在する場合はファイルを開き、最初から編集を開始します.つまり、既存のコンテンツは削除されます.ファイルが存在しない場合は、新しいファイルを作成します.
    w+
    読み書き用のファイルを開きます.ファイルがすでに存在する場合はファイルを開き、最初から編集を開始します.つまり、既存のコンテンツは削除されます.ファイルが存在しない場合は、新しいファイルを作成します.
    wb+
    読み取り/書き込み用のファイルをバイナリ形式で開きます.ファイルがすでに存在する場合はファイルを開き、最初から編集を開始します.つまり、既存のコンテンツは削除されます.ファイルが存在しない場合は、新しいファイルを作成します.
    a
    追加用のファイルを開きます.ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます.すなわち,新しいコンテンツは既存のコンテンツの後に書き込まれる.ファイルが存在しない場合は、新しいファイルを作成して書き込みます.
    ab
    追加用のファイルをバイナリ形式で開きます.ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます.すなわち,新しいコンテンツは既存のコンテンツの後に書き込まれる.ファイルが存在しない場合は、新しいファイルを作成して書き込みます.
    a+
    読み書き用のファイルを開きます.ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます.ファイルが開くと追加モードになります.ファイルが存在しない場合は、読み書き用の新しいファイルを作成します.
    ab+
    追加用のファイルをバイナリ形式で開きます.ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます.ファイルが存在しない場合は、読み書き用の新しいファイルを作成します.
    1.1.2迅速な体験
    f = open('test.txt', 'w')
    

    注:このときのfは、open関数のファイルオブジェクトです.
    2.1ファイルオブジェクトメソッド
    1.2.1書き込み
  • 構文
  •     .write('  ')
    
  • 体験
  • # 1.     
    f = open('test.txt', 'w')
    
    # 2.    
    f.write('hello world')
    
    # 3.     
    f.close()
    

    注意:
  • wおよびaモード:ファイルが存在しない場合はファイルを作成します.ファイルが存在する場合は、wモードをクリアしてから書き込み、aモードをそのまま末尾に追加します.
  • rモード:ファイルが存在しない場合はエラーが表示されます.

  • 1.2.2読み
  • read()
  •     .read(num)
    

    numは、ファイルから読み出すデータの長さ(単位はバイト)を表し、numが転送されない場合は、ファイル内のすべてのデータを読み出すことを表します.
  • readlines()

  • readlinesは、ファイル全体の内容を行で一括して読み取り、各行のデータが要素であるリストを返すことができます.
    f = open('test.txt')
    content = f.readlines()
    
    # ['hello world
    ', 'abcdefg
    ', 'aaa
    ', 'bbb
    ', 'ccc']
    print(content) # f.close()
  • readline()

  • readline()は、1行の内容を一度に読み込みます.
    f = open('test.txt')
    
    content = f.readline()
    print(f'   :{content}')
    
    content = f.readline()
    print(f'   :{content}')
    
    #     
    f.close()
    

    1.2.3 seek()
    ≪アクション|Actions|emdw≫:ファイル・ポインタを移動します.
    構文は次のとおりです.
        .seek(   ,     )
    

    開始位置:
  • 0:ファイル先頭
  • 1:現在位置
  • 2:ファイル末尾
  • 3.1クローズ
        .close()
    

    三、ファイルのバックアップ
    需要:ユーザーは現在のディレクトリの下の任意のファイル名を入力し、プログラムはファイルのバックアップ機能(バックアップファイル名xx[バックアップ]接尾辞、例えばtest[バックアップ].txt)を完了します.
    1.手順
  • 受信ユーザ入力ファイル名
  • 計画バックアップファイル名
  • バックアップファイル書き込みデータ
  • 2.コード実装
  • 受信ユーザ入力先ファイル名
  • old_name = input('           :')
    
  • 計画バックアップファイル名2.1ターゲットファイル接尾辞2.2組織バックアップのファイル名を抽出xx[バックアップ]接尾辞
  • # 2.1           
    index = old_name.rfind('.')
    
    # print(index)  #    .   
    
    # print(old_name[:index])  #     (   )
    
    # 2.2             + [  ] +   
    new_name = old_name[:index] + '[  ]' + old_name[index:]
    
    #       (   )
    # print(new_name)
    
  • バックアップファイル書き込みデータ3.1ソースファイルとバックアップファイルを開く3.2ソースファイルデータをバックアップファイルに書き込む3.3ファイルを閉じる
  • .
    # 3.1     
    old_f = open(old_name, 'rb')
    new_f = open(new_name, 'wb')
    
    # 3.2             
    while True:
        con = old_f.read(1024)
        if len(con) == 0:
            break
        new_f.write(con)
    
    # 3.3     
    old_f.close()
    new_f.close()
    

    3.考える
    ユーザーが.txtと入力した場合、これは無効なファイルです.プログラムはどのように変更して有効なファイル名だけがバックアップできるように制限しますか?
    答え:条件判断を追加すればよい.
    old_name = input('           :')
    
    index = old_name.rfind('.')
    
    
    if index > 0:
        postfix = old_name[index:]
    
    new_name = old_name[:index] + '[  ]' + postfix
    
    old_f = open(old_name, 'rb')
    new_f = open(new_name, 'wb')
    
    while True:
        con = old_f.read(1024)
        if len(con) == 0:
            break
        new_f.write(con)
    
    old_f.close()
    new_f.close()
    

    四、ファイルとフォルダの操作
    Pythonでのファイルとフォルダの操作はosモジュールの関連機能を利用し、具体的な手順は以下の通りです.
  • osモジュール
  • にインポート
    import os
    
  • osモジュール関連機能
  • を使用する.
    os.   ()
    

    1.ファイル名の変更
    os.rename(     ,     )
    

    2.ファイルの削除
    os.remove(     )
    

    3.フォルダの作成
    os.mkdir(     )
    

    4.フォルダの削除
    os.rmdir(     )
    

    5.現在のディレクトリの取得
    os.getcwd()
    

    6.デフォルトディレクトリの変更
    os.chdir(  )
    

    7.ディレクトリリストの取得
    os.listdir(  )
    

    五、応用例
    需要:ファイル名を一括変更し、指定した文字列を追加したり、指定した文字列を削除したりできます.
  • ステップ
  • 削除文字列を追加する識別子
  • を設定する.
  • 指定ディレクトリのすべてのファイル
  • を取得する.
  • 既存ファイル名を指定文字列を追加/削除し、新しい名前
  • を構築する.
  • os.rename()名前変更
  • コード
  • import os
    
    #        :   1       ,flag   2       
    flag = 1
    
    #       
    dir_name = './'
    
    #            
    file_list = os.listdir(dir_name)
    # print(file_list)
    
    
    #           
    for name in file_list:
    
        #       
        if flag == 1:
            new_name = 'Python-' + name
        #       
        elif flag == 2:
            num = len('Python-')
            new_name = name[num:]
    
        #       ,       
        print(new_name)
        
        #    
        os.rename(dir_name+name, dir_name+new_name)
    

    六、まとめ
  • ファイル操作手順
  • オープン
  •      = open(    ,     )
    
  • 操作
  • 読み
        .read()
        .readlines()
        .readline()
    
  • 書き込み
  •     .write()
    
  • seek()

  • 閉じる
  •     .close()
    
  • プライマリ・アクセス・モード
  • w:書き込み、ファイルが存在しない場合に新規作成する
  • r:読み、ファイルが存在しない場合は
  • とエラーが発生します.
  • a:追加
  • ファイルとフォルダ操作
  • 名前変更:os.rename()
  • 現在のディレクトリを取得:os.getcwd()
  • 取得ディレクトリリスト:os.listdir()

  • 友情リンク:
  • Python使用with open()as読み書きファイル
  • 深入浅出Python——Python高級文法の対象