ホームページ  >  記事  >  バックエンド開発  >  Python を使用してコンテンツをファイルに書き込む方法

Python を使用してコンテンツをファイルに書き込む方法

王林
王林転載
2023-06-02 22:26:472323ブラウズ

1. Write() メソッド

write() メソッドの使用: open() 関数を使用してファイルを開き、write() メソッドを使用してコンテンツをファイルに書き込みます。例:

with open('example.txt', 'w') as f:
    f.write('Hello, world!')

open() 関数は、ファイルを開くための Python の組み込み関数です。一般的に使用されるパラメータとその意味は次のとおりです:

1.file: ファイル名またはファイル パス。絶対パスまたは相対パスを使用できます。パスが相対パスの場合、現在の作業ディレクトリに対する相対パスになります。パスを省略した場合、ファイルは現在の作業ディレクトリで開かれます。

2.mode: ファイルを開くモード。次の値のいずれかを指定できます:

  • 'r': 読み取り専用モード。デフォルト モードでは、ファイルが存在しない場合、例外がスローされます。

  • 'w': 書き込みモード。ファイルが存在しない場合は、ファイルが作成されます。ファイルがすでに存在する場合、ファイルはクリアされ、新しいコンテンツが書き込まれます。

  • 'x': 排他的作成モード。ファイルが存在しない場合は、ファイルが作成されます。ファイルがすでに存在する場合、例外がスローされます。

  • 'a': 追加モード。ファイルが存在しない場合は、ファイルが作成されます。ファイルがすでに存在する場合は、ファイルの末尾に新しいコンテンツを追加します。

  • 'b': バイナリ モード。 「rb」や「wb」などの他のモードと一緒に使用します。

  • 't': テキスト モード。 「rt」や「wt」などの他のモードでも使用できます。

3.buffering: バッファ サイズを設定します。省略または 0 の場合、バッファリングは行われません。 1 の場合、行はバッファリングされます。 1 より大きい場合は、バッファー サイズ。

4.encoding: ファイルコンテンツのエンコードとデコードに使用されるエンコード形式。省略した場合は、デフォルトのエンコーディングが使用されます。

5.errors: ファイルのコンテンツをエンコードおよびデコードするときに発生したエラーを処理する方法。次の値のいずれかを指定できます。

  • 'strict': デフォルト値。これは、エラーが発生したときに例外がスローされることを意味します。

  • 'ignore': エラーを無視します。

  • 'replace': 間違った文字を「?」に置き換えます。

  • 'backslashreplace': 間違った文字をバックスラッシュ エスケープに置き換えます。

  • 'xmlcharrefreplace': 間違った文字を XML エンティティに置き換えます。

  • 'namereplace': 間違った文字を \N{...} エスケープに置き換えます。

6.newline: テキスト モードでの改行の処理を制御します。次のいずれかの値を指定できます:

  • #None: デフォルトの改行文字 \n を使用します。

  • '': 改行変換は行われません。

  • '\n'、'\r'、'\r\n'、'\u2028'、'\u2029': 指定された改行文字を使用します。

True に設定すると、ファイルを開いたときに、そのファイルの基礎となるファイル記述子が閉じられます。デフォルトは True です。

8.opener: ファイルを開くために使用されるカスタム関数またはクラス。デフォルトは「なし」です。

これらのパラメータは、ファイルのさまざまな操作要件を満たすためにさまざまな組み合わせで使用できます。たとえば、open('example.txt', 'w') は、example.txt という名前のファイルを書き込みモードで開きます。ファイルが存在しない場合は、新しい空のファイルを作成します。

2. writelines() メソッド

writelines() メソッドは、文字列のリストをファイルに書き込みます。例:

with open('example.txt', 'w') as f:
    lines = ['Hello, world!', 'Welcome to Python']
    f.writelines(lines)

writelines() メソッドは、文字列のリストをファイルに書き込むために使用されるメソッドです。ただし、次の点に注意する必要があります。

  • writelines() メソッドは、文字列のリストのみをパラメータとして受け入れます。単一の文字列を書き込む場合は、write() メソッドを使用します。

  • writelines() メソッドは文字列の間に改行を自動的に追加しません。改行は文字列に手動で追加する必要があります。

  • writelines() メソッドは、リストの最後に空行を追加しません。最後の行に空行を追加する必要がある場合は、次の内容を含む空の文字列を手動で追加してください。改行文字。

  • writelines() メソッドを使用する場合は、渡されるパラメーターが文字列を含むリストであることを確認する必要があります。パラメーターがジェネレーター オブジェクトの場合は、渡す前にリストに変換する必要があります。

lines = ['line 1\n', 'line 2\n', 'line 3\n']
 
with open('example.txt', 'w') as f:
    f.writelines(lines)

メソッドの高度な使用法には、主にイテレータ オブジェクト内のデータを一度にリストに変換することなくファイルに書き込むことが含まれます。このアプローチは要素を 1 つずつ反復処理し、すべての要素をメモリに保存することを回避するため、大規模なデータセットに役立ちます。

def generate_lines():
    yield 'line 1\n'
    yield 'line 2\n'
    yield 'line 3\n'
 
with open('example.txt', 'w') as f:
    f.writelines(generate_lines())

上記のコードでは、generate_lines() 関数は、文字列を 1 つずつ生成する反復子オブジェクトを返します。次に、この反復子オブジェクトを writelines() メソッドに渡します。このメソッドは、反復子オブジェクト内の文字列を 1 つずつファイルに書き込みます。

3. Print() 関数

print() 関数を使用してコンテンツをファイルに書き込むことができ、オープン ファイル オブジェクトとして file パラメーターを指定する必要があります。例:

with open('example.txt', 'w') as f:
    print('Hello, world!', file=f)

次に、print() 関数の共通パラメータとその詳細な概要を示します:

print() 関数は、出力情報を印刷するための Python の組み込み関数です。ターミナルへ。 print() 関数は複数のパラメータを受け入れ、それらを端末に出力できます。

以下は、print() 関数の共通パラメータとその詳細な概要です:

print(*objects, sep=' ', end='\n', file =sys.stdout、flush=False)

  • *objects:一个或多个要打印输出的对象,可以是字符串、数字、变量等。可以接受任意数量的参数。

  • sep:用于分隔多个参数的字符,默认是一个空格。在打印输出多个参数时,sep 参数将作为它们之间的分隔符。

  • end:用于表示打印输出结束的字符,默认是一个换行符。在输出最后一个参数后,end 参数会被添加在它们后面的字符位置。

  • file参数可用于指定输出至一个文件对象,如果未指定则默认输出到标准输出设备sys.stdout。可以将输出重定向到文件中,以便将输出保存到文件中而不是终端。

  • flush:用于指定是否立即刷新缓冲区,默认为 False。如果设置 flush 参数为 True,那么输出会立即写入文件,而不需要等待缓冲区填满。

# 打印输出单个字符串
print("Hello World")
 
# 打印输出多个参数
print("Name:", "John", "Age:", 25)
 
# 使用自定义分隔符
print("Name:", "John", "Age:", 25, sep="-")
 
# 使用自定义结束符
print("Name:", "John", "Age:", 25, end=".")
 
# 将输出重定向到文件
with open('output.txt', 'w') as f:
    print("Hello World", file=f)
 
# 立即刷新缓冲区
print("Hello World", flush=True)

print(string, *args, **kwargs)

  • 一个包含需要输出的信息和格式化占位符的格式化字符串。占位符应该用花括号 {} 包含,同时指明相应数据的类型、宽度、精度等信息来进行填充格式化。

  • *args:可选参数,包含要填充到格式化字符串中的数据。

  • **kwargs:可选参数,包含键值对,用于指定格式化字符串中的占位符的值。

name = "John"
age = 25
 
# 使用占位符输出字符串
print("Name: {}, Age: {}".format(name, age))
 
# 使用关键字参数输出字符串
print("Name: {n}, Age: {a}".format(n=name, a=age))
 
# 使用 f-string 输出字符串
print(f"Name: {name}, Age: {age}")

四、使用 csv 模块

可以使用 csv 模块将数据写入 CSV 文件。例如:

import csv
 
with open('example.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['Name', 'Age', 'Gender'])
    writer.writerow(['Alice', 25, 'F'])
    writer.writerow(['Bob', 30, 'M'])

五、使用 json 模块

可以使用 json 模块将 Python 对象写入 JSON 文件。例如:

import json
 
data = {
    'name': 'Alice',
    'age': 25,
    'gender': 'F'
}
 
with open('example.json', 'w') as f:
    json.dump(data, f)

以上がPython を使用してコンテンツをファイルに書き込む方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。