ファイル
目的
- ファイルの概念
- ファイルの基本操作
- ファイル/フォルダの一般的な操作
- テキストファイルのエンコーディング
01.ファイルの概念
1.1ファイルの概念と機能
ファイルの概念
- コンピュータファイルは、長期保存デバイスに保存されているデータの一部です
- 長期ストレージデバイスには、ハードドライブ、USBフラッシュドライブ、モバイルハードドライブ、光ディスクなどがあります。
ファイルの役割
- データを長期間保存し、必要に応じて使用します
1.2ファイルの保存方法
- コンピュータでは、ファイルはバイナリ方式でディスクに保存されます
テキストファイルとバイナリファイル
- テキストファイル
は、
基本的にバイナリファイルであるテキスト編集ソフトウェアで表示できます。
例:pythonソースプログラム - バイナリファイル
の内容は、人々が直接読むためのものではなく、他のソフトウェアが使用するためのものです。
たとえば、画像ファイル、オーディオファイル、ビデオファイルなどです。
02.ファイルの基本操作
2.1ファイル操作のルーチン
コンピューター内のファイルを操作するためのルーチンは、合計3つのステップを含め、非常に固定されています。
1.ファイルを開きます
2.ファイルの読み取りと書き込みファイル
の内容の読み取りとメモリへの読み取りメモリの内容のファイルへの
書き込み
3.ファイルを閉じます。
2.2ファイルを操作する機能/方法
Pythonでファイルを操作するには、1つの関数と3つのメソッドを覚えておく必要があります
- open関数は、ファイルを開いてファイルオブジェクトを返す役割を果たします。
- 読み取り/書き込み/閉じるの3つのメソッドはすべて、ファイルオブジェクトを介して呼び出す必要があります
2.3読み取り方法-ファイルの読み取り
-
open関数の最初のパラメーターは、開くファイルの名前です(ファイル名では大文字と小文字が区別されます)
1。ファイルが存在する場合は、ファイル操作オブジェクトが返されます
。2 。ファイルが存在しない場合は、例外が発生します。投げられる -
readメソッドは、ファイルのすべての内容を一度に読み込んで返すことができます
-
closeメソッドは、ファイルを閉じる役割を果たします。ファイルを閉じるの
を忘れると、システムリソースが消費され、その後のファイルへのアクセスに影響します。 -
注:readメソッドが実行された後、ファイルポインターはファイルの末尾に移動されます
# 1. 打开 - 文件名需要注意大小写
file = open("README")
# 2. 读取
text = file.read()
print(text)
# 3. 关闭
file.close()
促す
- 開発では、通常、最初に開閉するコードを記述し、次にファイルの読み取り/書き込み操作を途中で記述します。
ファイルポインタ(知っている)
- ファイルポインタは、データの読み取りを開始する場所を示します
- 初めてファイルを開くとき、通常、ファイルポインタはファイルの先頭を指します
- readメソッドが実行されると、ファイルポインタは読み取られたコンテンツ
の最後に移動します。デフォルトでは、ファイルポインタはファイルの最後に移動します。
思考
readメソッドを1回実行し、すべてのコンテンツを読み取った場合、readメソッドを再度呼び出すことでコンテンツを取得できますか?
最初の読み取り後に答えを出す
ことはできません。
ファイルポインタがファイルの最後に移動され、再度呼び出されてもコンテンツは読み取られません。
2.4ファイルを開く方法
読み取り専用でファイルを開き、ファイルオブジェクトの
構文を返すデフォルトの関数は次のとおりです。
f = open("文件名", "访问方式")
促す
ファイルポインタを頻繁に移動すると、ファイルの読み取りと書き込みの効率に影響します。開発では、ファイルは読み取り専用モードと書き込み専用モードで操作されることがよくあります。
ファイルの書き込み例
# 打开文件
f = open("README", "w")
f.write("hello python!\n")
f.write("今天天气真好")
# 关闭文件
f.close()
2.5ファイルの内容を1行ずつ読み取る
- 方法は、読み
のデフォルトの方法読まれるファイルのすべての内容をメモリに読み込ま一時間
、メモリ使用量が非常に深刻になり、ファイルが大きすぎる場合に - readlineメソッド
readlineメソッドは、一度に1行ずつ読み取ることができます。
メソッドが実行されると、ファイルポインターが次の行に移動し、再度読み取る準備が整います。
大きなファイルを読み取るための正しい姿勢
# 打开文件
file = open("README")
while True:
# 读取一行内容
text = file.readline()
# 判断是否读到内容
if not text:
break
# 每读取一行的末尾已经有了一个 `\n`
print(text, end="")
# 关闭文件
file.close()
2.6ファイルの読み取りと書き込みのケースコピーファイル
目標
コードを使用してファイルコピープロセスを実装する
小さなファイルのコピー
- 既存のファイルを開き、コンテンツ全体を読み取り、別のファイルに書き込みます
# 1. 打开文件
file_read = open("README")
file_write = open("README[复件]", "w")
# 2. 读取并写入文件
text = file_read.read()
file_write.write(text)
# 3. 关闭文件
file_read.close()
file_write.close()
大きなファイルのコピー
既存のファイルを開き、コンテンツを1行ずつ読み取り、別のファイルに順番に書き込みます
# 1. 打开文件
file_read = open("README")
file_write = open("README[复件]", "w")
# 2. 读取并写入文件
while True:
# 每次读取一行
text = file_read.readline()
# 判断是否读取到内容
if not text:
break
file_write.write(text)
# 3. 关闭文件
file_read.close()
file_write.close()
03.ファイル/ディレクトリの一般的な管理操作
- ターミナル/ファイルブラウザでは、
作成、名前変更、削除、パスの変更、ディレクトリの内容の表示など、通常のファイル/ディレクトリ管理操作を実行できます。 - Pythonでは、プログラムを介して上記の関数を実装する場合は、osモジュールをインポートする必要があります
ファイル操作
ディレクトリ操作
ヒント:ファイルまたはディレクトリの操作は、相対パスと絶対パスでサポートされています
04.テキストファイルのエンコード形式(科学)
-
テキストファイルストレージの内容は、ファイルの文字エンコード、一般的なエンコードASCIIエンコード、UNICODEコーディングに基づいています
-
Python 2.xは、デフォルトでASCIIエンコード形式を使用します
-
Python 3.xは、デフォルトでUTF-8エンコーディング形式を使用します
4.1ASCIIエンコーディングとUNICODEエンコーディング
ASCIIエンコーディング
- コンピューターには256文字のASCII文字しかありません
- ASCIIはメモリ内の1バイトのスペースを占有し
ます。256の順列と80/1、つまり2 ** 8の組み合わせがあります。
UTF-8エンコーディング形式
- コンピューターは1〜6バイトを使用してUTF-8文字を表し、地球のほぼすべての領域をカバーします
- ほとんどの漢字は3バイトで表されます
- UTF-8は、UNICODEエンコーディングのエンコーディング形式です。
4.2 Ptyhon2.xで中国語を使用する方法
Python2.xは
デフォルトでASCIIエンコード形式を使用しますPython3.xはデフォルトでUTF-8エンコード形式を使用します
次のコードをPython2.xファイルの最初の行に追加すると、インタープリターはPythonファイルをutf-8エンコーディングで処理します
# *-* coding:utf8 *-*
この方法が公式に推奨されています!
使用することもできます
# coding=utf8
Unicode文字列
-
Python 2.xでは、ファイルエンコーディング形式UTF-8を指定することもできますが、文字列をトラバースするときは、トラバーサル文字列をバイト化します。
-
文字列を正しくトラバースできるようにするには、文字列を定義するときに、文字列の引用符の前に小文字のuを追加して、これがUnicode文字列(UTF-8エンコード形式の文字列)であることをインタプリタに通知する必要があります。
# *-* coding:utf8 *-*
# 在字符串前,增加一个 `u` 表示这个字符串是一个 utf8 字符串
hello_str = u"你好世界"
print(hello_str)
for c in hello_str:
print(c)