Python独学ノート---14.ファイルとファイルオブジェクト
5489 ワード
ファイルとファイルオブジェクト
私はLinuxのファイルを勉強している間に、一つの法則をまとめました.1つのファイルに直面するときは、このファイルを操作するには、まずこのファイルを開き、それを読み書きします.もちろんこの読み書きの仕方はたくさんあります.Pythonにはファイルを読み書きする関数が内蔵されており、使い方はCと互換性があります.
1.ファイルを開く一般的な操作
Pythonに内蔵されている関数openは、次のようにファイルオブジェクトを開き、作成するために使用されます.
2.open関数を使用した拡張
上記の例では、テキストモードでファイルを開くか作成するかについてのみ説明しますが、実際の開発でこのような状況や状況に遭遇した場合は、次のセクションで説明します.
2.1バイナリデータ
バイナリ・データを処理している場合は、「b」をファイル・モードの後に添付できます.これにより、改行文字変換が無効になります.
2.2ファイルの追加
私たちはファイルを操作して、特にロゴを印刷する時に最も多く使うのは追加で、あなたは考えてみて、毎回ロゴファイルを書くたびにあなたがファイルをクリアしたら、あなたのこのロゴを印刷するのはどんな意味がありますか?だからファイルの追加は特に役に立つ方法です.
2.3 w+、r+、a+用法の区分
r+は可読と書込みの2つの操作w+は可読と書込みの2つの操作(まずファイル内容を自動的に空にする)a+は追加の読み書きの2つの操作である【以上の3つの操作方式はいずれも同時に読み書き操作を行うことができないことに注意する】上記‘w+’を例に挙げる
を選択します.
操作可能
ファイルが存在しない場合
上書きするかどうか
r
読み取り専用でファイルを開きます.ファイルのポインタはファイルの先頭に配置されます
誤報
はい
rb
読み取り専用のファイルをバイナリ形式で開きます.ファイルポインタはファイルの先頭に配置されます
誤報
はい
r+
読み書き用のファイルを開きます.ファイルポインタはファイルの先頭に配置されます
誤報
はい
rb+
読み取り/書き込み用のファイルをバイナリ形式で開きます.ファイルポインタはファイルの先頭に配置されます
誤報
はい
w
書くしかない
作成
はい
wb
書き込み用のファイルをバイナリ形式で開きます.ファイルがすでに存在する場合はファイルを開き、最初から編集を開始します.つまり、既存のコンテンツは削除されます.ファイルが存在しない場合は、ファイルの先頭に新しいファイルを作成します.
作成
はい
w+
読み書き用のファイルを開きます.ファイルがすでに存在する場合はファイルを開き、最初から編集を開始します.つまり、既存のコンテンツは削除されます.ファイルが存在しない場合は、新しいファイルを作成します.
作成
はい
wb+
読み取り/書き込み用のファイルをバイナリ形式で開きます.ファイルがすでに存在する場合はファイルを開き、最初から編集を開始します.つまり、既存のコンテンツは削除されます.ファイルが存在しない場合は、新しいファイルを作成します.
作成
はい
a
追加用のファイルを開きます.ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます.すなわち,新しいコンテンツは既存のコンテンツの後に書き込まれる.ファイルが存在しない場合は、新しいファイルを作成して書き込みます.
作成
いいえ、追加書き
ab
追加用のファイルをバイナリ形式で開きます.ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます.すなわち,新しいコンテンツは既存のコンテンツの後に書き込まれる.ファイルが存在しない場合は、新しいファイルを作成して書き込みます.
作成
いいえ、追加書き
a+
読み書き用のファイルを開きます.ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます.ファイルが開くと追加モードになります.ファイルが存在しない場合は、読み書き用の新しいファイルを作成します.
作成
いいえ、追加書き
ab+
追加用のファイルをバイナリ形式で開きます.ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます.ファイルが存在しない場合は、読み書き用の新しいファイルを作成します.
作成
いいえ、追加書き
2.4改行の処理について
linuxで作成されたスクリプトがwindowsプログラムによって生成されたテキストファイルを処理しなければならない場合、生成される可能性のある改行文字には(','r'および'r')が含まれています.pythonは、これらのファイルを処理する際にpythonに機能'U'および'rU'も提供します.
ファイルメソッド
方法
説明
f.read([n])
最大nバイト
f.readline([n])
単行入力の最大n文字を読み出します.nを省略すると、この方法は行全体を読み出す
f.readlines([size])
すべてのローを読み込み、リストを返します.sizeはオプションで、読み込み操作が停止する前にファイルに読み込む近似文字数を指定します.
f.write(s)
書き込み文字列s
f.writelines(lines)
シーケンスlinesに書き込まれたすべての文字列
f.close()
ファイルを閉じる
f.tell()
ファイルの現在のポインタを返します
f.seek(offset [,whence])
新しいファイルの場所を検索
f.isatty()
fがインタラクティブ端末である場合、1を返す
f.flush()
出力バッファのクリア
f.truncate([size])
ファイルを最大sizeバイトに切断
f.fileno()
整数ファイル記述子を返し、閉じるとvalueError例外を発行します.
f.__next__()
次の行に戻るか、StopIterationを開始します.python 2.7での対応方法はf.next()
まとめこのセクションでは、pythonの下のファイルとファイルオブジェクトについて初歩的な認識を持っています.pythonに内蔵されている関数は、C言語標準ライブラリのファイル操作のいくつかの関数を継承しています.もちろん、その中には多少改善されていますが、C言語の使い方によっても共通しています. ファイル操作関数及び方法の詳細については、後章で を順次展開する.この間は主にpythonのファイル操作とlinuxのファイル操作を復習し、両者の異なる共通点 を整理した.
私はLinuxのファイルを勉強している間に、一つの法則をまとめました.1つのファイルに直面するときは、このファイルを操作するには、まずこのファイルを開き、それを読み書きします.もちろんこの読み書きの仕方はたくさんあります.Pythonにはファイルを読み書きする関数が内蔵されており、使い方はCと互換性があります.
1.ファイルを開く一般的な操作
Pythonに内蔵されている関数openは、次のようにファイルオブジェクトを開き、作成するために使用されます.
fd = open("path") # "path",path
fd = open("path", 'r') # "path"
fd = open("path", 'w') # "path"
2.open関数を使用した拡張
上記の例では、テキストモードでファイルを開くか作成するかについてのみ説明しますが、実際の開発でこのような状況や状況に遭遇した場合は、次のセクションで説明します.
2.1バイナリデータ
バイナリ・データを処理している場合は、「b」をファイル・モードの後に添付できます.これにより、改行文字変換が無効になります.
fd = open("path", 'rb')
fd = open("path", 'wb')
# 't' ,
fd = open("path", 'rt')
fd = open("path", 'wt')
2.2ファイルの追加
私たちはファイルを操作して、特にロゴを印刷する時に最も多く使うのは追加で、あなたは考えてみて、毎回ロゴファイルを書くたびにあなたがファイルをクリアしたら、あなたのこのロゴを印刷するのはどんな意味がありますか?だからファイルの追加は特に役に立つ方法です.
fd = open("path", 'ra')
fd = open("path", 'wa')
2.3 w+、r+、a+用法の区分
r+は可読と書込みの2つの操作w+は可読と書込みの2つの操作(まずファイル内容を自動的に空にする)a+は追加の読み書きの2つの操作である【以上の3つの操作方式はいずれも同時に読み書き操作を行うことができないことに注意する】上記‘w+’を例に挙げる
path = 'G:/Python/boke/test1.txt' #
fd = open(path,'w+',encoding='UTF-8')
fd.writelines('sdssdsd')
fd.close()
fd = open(path,'r+',encoding='UTF-8')
for line in fd:
print(line) #
fd.close()
を選択します.
操作可能
ファイルが存在しない場合
上書きするかどうか
r
読み取り専用でファイルを開きます.ファイルのポインタはファイルの先頭に配置されます
誤報
はい
rb
読み取り専用のファイルをバイナリ形式で開きます.ファイルポインタはファイルの先頭に配置されます
誤報
はい
r+
読み書き用のファイルを開きます.ファイルポインタはファイルの先頭に配置されます
誤報
はい
rb+
読み取り/書き込み用のファイルをバイナリ形式で開きます.ファイルポインタはファイルの先頭に配置されます
誤報
はい
w
書くしかない
作成
はい
wb
書き込み用のファイルをバイナリ形式で開きます.ファイルがすでに存在する場合はファイルを開き、最初から編集を開始します.つまり、既存のコンテンツは削除されます.ファイルが存在しない場合は、ファイルの先頭に新しいファイルを作成します.
作成
はい
w+
読み書き用のファイルを開きます.ファイルがすでに存在する場合はファイルを開き、最初から編集を開始します.つまり、既存のコンテンツは削除されます.ファイルが存在しない場合は、新しいファイルを作成します.
作成
はい
wb+
読み取り/書き込み用のファイルをバイナリ形式で開きます.ファイルがすでに存在する場合はファイルを開き、最初から編集を開始します.つまり、既存のコンテンツは削除されます.ファイルが存在しない場合は、新しいファイルを作成します.
作成
はい
a
追加用のファイルを開きます.ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます.すなわち,新しいコンテンツは既存のコンテンツの後に書き込まれる.ファイルが存在しない場合は、新しいファイルを作成して書き込みます.
作成
いいえ、追加書き
ab
追加用のファイルをバイナリ形式で開きます.ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます.すなわち,新しいコンテンツは既存のコンテンツの後に書き込まれる.ファイルが存在しない場合は、新しいファイルを作成して書き込みます.
作成
いいえ、追加書き
a+
読み書き用のファイルを開きます.ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます.ファイルが開くと追加モードになります.ファイルが存在しない場合は、読み書き用の新しいファイルを作成します.
作成
いいえ、追加書き
ab+
追加用のファイルをバイナリ形式で開きます.ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます.ファイルが存在しない場合は、読み書き用の新しいファイルを作成します.
作成
いいえ、追加書き
2.4改行の処理について
linuxで作成されたスクリプトがwindowsプログラムによって生成されたテキストファイルを処理しなければならない場合、生成される可能性のある改行文字には(','r'および'r')が含まれています.pythonは、これらのファイルを処理する際にpythonに機能'U'および'rU'も提供します.
# ('
', '\r' '\r
') '
' ,
fd = open("path", 'U')
fd = open("path", 'rU')
ファイルメソッド
方法
説明
f.read([n])
最大nバイト
f.readline([n])
単行入力の最大n文字を読み出します.nを省略すると、この方法は行全体を読み出す
f.readlines([size])
すべてのローを読み込み、リストを返します.sizeはオプションで、読み込み操作が停止する前にファイルに読み込む近似文字数を指定します.
f.write(s)
書き込み文字列s
f.writelines(lines)
シーケンスlinesに書き込まれたすべての文字列
f.close()
ファイルを閉じる
f.tell()
ファイルの現在のポインタを返します
f.seek(offset [,whence])
新しいファイルの場所を検索
f.isatty()
fがインタラクティブ端末である場合、1を返す
f.flush()
出力バッファのクリア
f.truncate([size])
ファイルを最大sizeバイトに切断
f.fileno()
整数ファイル記述子を返し、閉じるとvalueError例外を発行します.
f.__next__()
次の行に戻るか、StopIterationを開始します.python 2.7での対応方法はf.next()
まとめ