- ファイルを開きます:
open() 関数を使用してファイルを開き、ファイルを開くためのモードとファイル名を指定できます。
# 打开文件
file = open("filename.txt", "r")
このうち、最初のパラメータはファイル名、2 番目のパラメータはファイルを開くモードで、一般的に使用されるモードは次のとおりです。
- "r": 読み取り専用モード。このモードでは、ファイル ポインタはファイルの先頭から開始されます。ファイルが存在しない場合は、エラーが報告されます。
- "w": 書き込みモード。ファイルが存在しない場合はファイルが自動的に作成され、ファイルが存在する場合はファイルの内容が上書きされます。
- "a": 追記モードです。このモードでは、ファイルポインタはファイルの末尾から始まります。ファイルが存在しない場合は、ファイルが自動的に作成されます。
- "x": 排他モード、指定されたファイル名で新しいファイルを作成します。ファイルが既に存在する場合はエラーが報告されます。
- ファイルを閉じます。
すでに開いているファイルを閉じるには、close() 関数を使用します。
# 关闭文件
file.close()
- ファイルを読み取ります:
read() 関数を使用してファイルの内容を読み取ります。
# 读取整个文件
content = file.read()
print(content)
readline() 関数を使用して、ファイルの内容を 1 行ずつ読み取ることもできます。
# 逐行读取文件
line = file.readline()
while line:
print(line)
line = file.readline()
- ファイルに書き込む:
write() 関数を使用して、コンテンツをファイルに書き込みます。
# 写入文件
file.write("Hello World!")
- ファイルの削除:
ファイルを削除するには、os モジュールのremove() 関数を使用します。
# 删除文件
import os
os.remove("filename.txt")
- 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)
- 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")
- 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
- ディレクトリ内の指定されたサイズのファイルをカウントし、コレクションを返します。
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
- ファイル内の指定した文字を素早く置換する
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()