記事のディレクトリ
最初にいくつかのロジックを記述します。
- 最初にopen関数を使用する必要があります。ファイルを開いた後、後続の書き込みおよび読み取り操作を実行します。
- 読み取り、書き込み、読み取り、書き込み、追加など、open関数でファイルの目的を定義する(open関数のパラメーターを設定する)必要があります。
- ポインタの位置は、ターゲットコンテンツに直接影響します
この記事では、主に、基本的なオープン、書き込み、読み取り、およびファイル操作の2つの主要な方向から要約します。
1.ファイルのオープン、書き込み、および読み取りの概要
オープン機能
open()
関数はPythonの組み込み関数であり、ファイルオブジェクトの作成に使用されます。覚えておいてください。ファイルオブジェクトを使用すると、関連するメソッドを呼び出して読み取りと書き込みを行うことができます。
基本的な使用法は次のとおりです。fileObject = open(xx, x)
ここで、xxは開くファイルを表し、xはパラメーターを表します。
(開いているファイルは以下では省略されています)
open(、r):読み取り専用、作成しない
open(、r +):読み取り+書き込み、作成しない
open(、w):書き込みのみ
open(、w +):書き込み+読み取り
open(、a):書き込み追加モード(カバレッジなし)
open(、a +):追加モードでの書き込み(カバレッジなし)+読み取り
、つまり、プラス記号'+'
は追加モードを表します。
注:
- w +とr +の違い
r+
:読み取りと書き込み、ファイルが存在しない場合はエラーを報告します;:w+
読み取りと書き込み、ファイルが存在しない場合は作成します
書き込み関数
write()メソッドは、指定された文字列をファイルに書き込むために使用されます。使用法:fileObject.write(str)
読み取り機能
fileObject.read()
:テキスト-> 1つのstr全体
fileObject.readline()
:1行-> 1つのstr
fileObject.readlines()
:すべての行->すべての行を含む1つのリスト
ポインタとシーク機能
ポインタは、読み取りおよび書き込み操作で後方に移動します
open
ファイルの後、ポインタはファイルの内容の先頭にありますwrite
関数の後、ポインターは書き込まれたコンテンツの後にありますread
関数の後、
たとえばread()を使用してポインターがコンテンツを読み取った後、ポインターは開始位置からファイルの終わりまで移動します。
したがって、希望どおりの結果が得られない場合は、ポインタの位置が間違っている可能性があります。
この場合、seek()
ポインタの位置を指定するために使用する必要があります。
注:seek(0)
最初を指す
2.簡単な例
ここでの例では、write、read、readline、およびreadlineの使用法について詳しく説明しています。
オープン機能w模式
とw+模式
- 最初の書き込み
# 首次写入
with open('write_files.txt', 'w') as f1:
f1.write('1 2 3\n4 5 6') # 只要没有退出文件,就可以连续写入
f1.write('7 8 9')
with open('write_files_w+.txt', 'w+') as f2:
f2.write('a b c\nd e f') # 只要没有退出文件,就可以连续写入
f2.write('g h i')
結果:(
ファイルに書き込まれたコンテンツ)
- もう一度書く
# 再次写入
with open('write_files.txt', 'w') as f1:
f1.write('w模式,重新写入...') # 再次写入会完全清空之前的文件
# w模式下使用read函数会导致报错(io.UnsupportedOperation: not readable),因为 w 模式不可 读取
#lines = f1.read()
#print(lines)
with open('write_files_w+.txt', 'w+') as f2:
f2.write('w+模式,重新写入...') # 再次写入会完全清空之前的文件
f2.seek(0) # 将经过write之后的指针移到文件开头
red = f2.read()
f2.seek(0) # 将经过read之后的指针移到文件开头
readline = f2.readline()
f2.seek(0) # 将readline()之后的指针移动到文件开头
readlines = f2.readlines()
print(f'read: {red}') # read()读取所有的内容,并且将其作为一个完整的字符串
print(f'readline: {readline}') # readline()只读取一行内容,且是字符串格式
print(f'readlines: {readlines}') # readlines()读取所有行,并将内容放在一个list里(注:由于这里总共只有一行,所以没有用到 for in 来遍历这个列表)
コンソールは結果を出力します:
read: w+模式,重新写入...
readline: w+模式,重新写入...
readlines: ['w+模式,重新写入...']
ファイルに書かれていること:
オープン機能のaモードとa +モード
在这里插入代码片
- モード
# 1. a 模式
with open('write_file_a.txt', 'a') as f1:
f1.write('x y z\n1 2 3')
# w模式下使用read函数会导致报错(io.UnsupportedOperation: not readable),因为 w 模式不可 读取
# lines = f1.read()
# print(lines)
結果:
- a +モード
# 2. a+模式
# 首次
with open('write_file_a+.txt', 'a+') as f2:
f2.write('A B C')
lines = f2.read() # 这里是没有东西打印出来的,因为指针现在在最后面
print(lines)
# 再次
with open('write_file_a+.txt', 'a+') as f2:
f2.write('1 2 3')
f2.seek(0) # 将指针移到头部
lines = f2.read()
print(lines)
結果の印刷:
A B C1 2 3
3.jsonモジュール
import json
data = json.load(open('my_file.json', 'r'))
4.ファイル操作
(完璧を待っています)
参照: