Pythonの基本的な知識のドキュメント(4)

ファイル

目的

  • ファイルの概念
  • ファイルの基本操作
  • ファイル/フォルダの一般的な操作
  • テキストファイルのエンコーディング

01.ファイルの概念

1.1ファイルの概念と機能

ファイルの概念

  • コンピュータファイルは、長期保存デバイスに保存されているデータの一部です
  • 長期ストレージデバイスには、ハードドライブ、USBフラッシュドライブ、モバイルハードドライブ、光ディスクなどがあります。

ファイルの役割

  • データを長期間保存し、必要に応じて使用します

1.2ファイルの保存方法

  • コンピュータでは、ファイルはバイナリ方式でディスクに保存されます

テキストファイルとバイナリファイル

  • テキストファイル
    は、
    基本的にバイナリファイルであるテキスト編集ソフトウェアで表示できます。
    例:pythonソースプログラム
  • バイナリファイル
    の内容は、人々が直接読むためのものではなく、他のソフトウェアが使用するためのものです。
    たとえば、画像ファイル、オーディオファイル、ビデオファイルなどです。

02.ファイルの基本操作

2.1ファイル操作のルーチン

コンピューター内のファイルを操作するためのルーチンは、合計3つのステップを含め、非常に固定されています。

1.ファイルを開きます
2.ファイルの読み取りと書き込みファイル
の内容の読み取りとメモリへの読み取りメモリの内容のファイルへの
書き込み
3.ファイルを閉じます。

2.2ファイルを操作する機能/方法

Pythonでファイルを操作するには、1つの関数と3つのメソッドを覚えておく必要があります
シリアル番号関数/メソッドの説明01openファイルを開き、ファイル操作オブジェクトを返します02readファイルの内容をメモリに読み取ります03write指定した内容をファイルに書き込みます04closeファイルを閉じます

  • 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("文件名", "访问方式")

アクセスモードの説明rファイルを読み取り専用モードで開きます。 ファイルのポインタは、デフォルトのモードであるファイルの先頭に配置されます。 ファイルが存在しない場合は、例外wをスローして、ファイルを書き込み専用モードで開きます。 ファイルが存在する場合は、上書きされます。 ファイルが存在しない場合は、新しいファイルを作成します。aファイルを追加モードで開きます。 ファイルがすでに存在する場合、ファイルポインタはファイルの最後に配置されます。 ファイルが存在しない場合は、書き込み用に新しいファイルを作成します。r+読み取りおよび書き込み用にファイルを開きます。 ファイルのポインタはファイルの先頭に配置されます。 ファイルが存在しない場合は、例外w +をスローして、読み取りと書き込みのためにファイルを開きます。 ファイルが存在する場合は、上書きされます。 ファイルが存在しない場合は、新しいファイルa +を作成して、読み取りと書き込みのためにファイルを開きます。 ファイルがすでに存在する場合、ファイルポインタはファイルの最後に配置されます。 ファイルが存在しない場合は、書き込み用に新しいファイルを作成します

促す

ファイルポインタを頻繁に移動すると、ファイルの読み取りと書き込みの効率に影響します。開発では、ファイルは読み取り専用モードと書き込み専用モードで操作されることがよくあります。

ファイルの書き込み例

# 打开文件
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モジュールをインポートする必要があります

ファイル操作
**シーケンス番号メソッド名説明例01名前の変更ファイルの名前変更os.rename(ソースファイル名、ターゲットファイル名)02削除ファイルの削除os.remove(ファイル名)**

ディレクトリ操作
シリアル番号メソッド名説明例01listdirディレクトリリストos.listdir(ディレクトリ名)02 mkdir create directory os.mkdir(ディレクトリ名)03 rmdir delete directory os.rmdir(ディレクトリ名)04 getcwd get current directory os.getcwd()05 chdir作業ディレクトリを変更しますos.chdir(ターゲットディレクトリ)06 path.isdirファイルかどうかを判断しますos.path.isdir(ファイルパス)

ヒント:ファイルまたはディレクトリの操作は、相対パスと絶対パスでサポートされています

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)

おすすめ

転載: blog.csdn.net/weixin_42272869/article/details/113572330