Python でのファイルの基本操作

  1. ファイルを開きます:

open() 関数を使用してファイルを開き、ファイルを開くためのモードとファイル名を指定できます。

# 打开文件
file = open("filename.txt", "r")

このうち、最初のパラメータはファイル名、2 番目のパラメータはファイルを開くモードで、一般的に使用されるモードは次のとおりです。

  • "r": 読み取り専用モード。このモードでは、ファイル ポインタはファイルの先頭から開始されます。ファイルが存在しない場合は、エラーが報告されます。
  • "w": 書き込みモード。ファイルが存在しない場合はファイルが自動的に作成され、ファイルが存在する場合はファイルの内容が上書きされます。
  • "a": 追記モードです。このモードでは、ファイルポインタはファイルの末尾から始まります。ファイルが存在しない場合は、ファイルが自動的に作成されます。
  • "x": 排他モード、指定されたファイル名で新しいファイルを作成します。ファイルが既に存在する場合はエラーが報告されます。
  1. ファイルを閉じます。

すでに開いているファイルを閉じるには、close() 関数を使用します。

# 关闭文件
file.close()
  1. ファイルを読み取ります:

read() 関数を使用してファイルの内容を読み取ります。

# 读取整个文件
content = file.read()
print(content)

readline() 関数を使用して、ファイルの内容を 1 行ずつ読み取ることもできます。

# 逐行读取文件
line = file.readline()
while line:
    print(line)
    line = file.readline()
  1. ファイルに書き込む:

write() 関数を使用して、コンテンツをファイルに書き込みます。

# 写入文件
file.write("Hello World!")
  1. ファイルの削除:

ファイルを削除するには、os モジュールのremove() 関数を使用します。

# 删除文件
import os
os.remove("filename.txt")
  1. 2 つのファイルの内容を結合する

with open ステートメントを使用すると、2 つのファイルを追加モードで開き、その内容を読み取り、新しいマージされたファイルに 1 行ずつ書き込み、最後に 3 つのファイルを閉じることができます。

コード例:

with open("file1.txt", "r") as file1, open("file2.txt", "r") as file2, open("merged_file.txt", "a") as merged_file:
    for line in file1:
        merged_file.write(line)
    for line in file2:
        merged_file.write(line)
  1. 2 つのファイルの内容を比較する

with open ステートメントを使用すると、2 つのファイルを 1 行ずつ読み取り、各行を比較し、異なる行の番号と行の内容を出力できます。2 つのファイルの長さが異なる場合、比較中に IndexError が発生し、この例外をキャッチするときに「ファイルの長さが異なります」が出力されることがあります。

コード例:

with open("file1.txt", "r") as file1, open("file2.txt", "r") as file2:
    try:
        for i, (line1, line2) in enumerate(zip(file1, file2)):
            if line1 != line2:
                print("Line {} in file1 is different from line {} in file2".format(i+1, i+1))
                print("File1: {}".format(line1.rstrip()))
                print("File2: {}".format(line2.rstrip()))
    except IndexError:
        print("Files have different lengths")
  1. Excel コンテンツを読み取り、構造化する

openpyxl ライブラリを使用して Excel ファイルを読み取り、各ワークシートのデータを 1 行ずつ読み取り、そのデータをリストに保存できます。最後に、ディクショナリが返されます。ディクショナリのキーはワークシート名、値はデータで構成されるリストです。

コード例:

from openpyxl import load_workbook

def read_excel(file_path):
    workbook = load_workbook(file_path)
    data = {
    
    }
    for sheet_name in workbook.sheetnames:
        sheet = workbook[sheet_name]
        rows = []
        for row in sheet.iter_rows():
            row_data = []
            for cell in row:
                row_data.append(cell.value)
            rows.append(row_data)
        data[sheet_name] = rows
    return data
  1. ディレクトリ内の指定されたサイズのファイルをカウントし、コレクションを返します。

os ライブラリと os.path モジュールの関数を使用して、ディレクトリ内のすべてのファイルを走査し、ファイル サイズが要件を満たしているかどうかを判断し、要件を満たすファイル パスをセットに追加して返すことができます。

コード例:

import os

def find_files_by_size(start_dir, size):
    files = set()
    for root, dirs, filenames in os.walk(start_dir):
        for filename in filenames:
            file_path = os.path.join(root, filename)
            file_size = os.path.getsize(file_path)
            if file_size == size:
                files.add(file_path)
    return files
  1. ファイル内の指定した文字を素早く置換する

with open ステートメントを使用すると、ファイルを読み取り/書き込みモードで開き、各行で指定された文字を検索して新しい文字に置換し、最後にファイルを閉じることができます。

コード例:

with open("file.txt", "r+") as file:
    lines = file.readlines()
    file.seek(0)
    for line in lines:
        new_line = line.replace("old", "new")
        file.write(new_line)
    file.truncate()

おすすめ

転載: blog.csdn.net/u012534326/article/details/131246369