PythonのファイルI / O
この章では、唯一のより多くの機能がPythonの標準ドキュメントを参照してください、すべての基本的なI / O機能について説明します。
画面に印刷
最も簡単な方法は、あなたがそれをカンマで区切られたゼロ以上の式を渡すことができ、print文の出力を使用することです。 この機能を使用すると、文字列式を渡す式を変換し、次のように結果が標準出力に書き込まれます。
#!/usr/bin/python # -*- coding: UTF-8 -*- print "Python 是一个非常棒的语言,不是吗?";
標準の画面に次のような結果が生成されます。
Python 是一个非常棒的语言,不是吗?
キーボード入力を読みます
Pythonは標準からのテキスト入力のラインを読み取るには、2つの組み込み関数を提供し、デフォルトの標準入力はキーボードです。 次のように:
- raw_input
- 入力
raw_input機能
raw_input([プロンプト])関数は、標準入力から行を読み、文字列を返すために(末尾の改行は削除します):
#!/usr/bin/python # -*- coding: UTF-8 -*- str = raw_input("请输入:"); print "你输入的内容是: ", str
これは、任意の文字列を入力するようにプロンプトを表示し、画面上の同じ文字列が表示されます。 私は「ハロー!パイソン」を入力すると、以下のように、その出力は次のようになります。
请输入:Hello Python! 你输入的内容是: Hello Python!
入力関数
入力([プロンプト])関数とraw_input([プロンプト])は、実質的に同様の機能が、入力は、入力としてPythonの式を受け取り、操作の結果を返すことができます。
#!/usr/bin/python # -*- coding: UTF-8 -*- str = input("请输入:"); print "你输入的内容是: ", str
これは、入力に対応した以下の結果が得られます。
请输入:[x*5 for x in range(2,10,2)] 你输入的内容是: [10, 20, 30, 40]
ファイルを開くと閉じます
あなたが今読んで、標準入力と標準出力に書き込むことができます。 さて、実際のデータファイルを読み書きする方法を見てみましょう。
Pythonは基本動作のファイルのデフォルトのために必要な機能および方法を提供します。 あなたは、オブジェクトは、ほとんどのファイル操作を行うファイルを使用することができます 。
open関数
あなたは、ファイルを開くファイルオブジェクトを作成し、関連する方法は、読み書きにそれを呼び出すことができるためにPythonの組み込みのopen()関数を使用する必要があります。
構文:
file object = open(file_name [, access_mode][, buffering])
以下のように様々なパラメータの詳細は、次のとおりです。
- file_nameに:file_nameに変数を使用すると、ファイル名にアクセスしたい値を含む文字列です。
- ACCESS_MODE:読む、書く、追加:ACCESS_MODEは、ファイルモードを開くことにしました。 次のようにすべての可能な値の完全なリストを参照してください。 この非必須パラメータは、デフォルトのファイル・アクセス・モードは読み取り専用です(r)を。
- バッファリング:バッファの値が0に設定されている場合は、ストレージが存在しないであろう。 バッファリングの値が1を取る場合は、ファイルにアクセスするとき、それはラインを登録します。 値が1より大きい整数バッファを設定されている場合は、このバッファのサイズを示すことの記憶領域です。 負の値の場合、システムのデフォルト用のバッファ記憶域のサイズ。
ファイルの異なるモードの完全なリストを開きます。
モード | 説明 |
---|---|
R | 読み取り専用モードでファイルを開きます。 ポインタファイルは、ファイルの先頭に配置されます。 これがデフォルトのモードです。 |
RB | 読み取り専用のバイナリ形式でのファイルを開きます。 ファイルの先頭にポインタを提出します。 これがデフォルトのモードです。 |
R + | 読み取りと書き込みのためにファイルを開きます。 ファイルの先頭にポインタを提出します。 |
RB + | バイナリ形式の読み込みと書き込みのためにファイルを開きます。 ファイルの先頭にポインタを提出します。 |
ワット | 書き込み専用ファイルを開きます。 ファイルがすでに存在する場合、それは上書きされます。 ファイルが存在しない場合は、新しいファイルを作成します。 |
WB | 唯一のバイナリフォーマットで書き込むためのファイルを開きます。 ファイルがすでに存在する場合、それは上書きされます。 ファイルが存在しない場合は、新しいファイルを作成します。 |
ワット+ | 読み取りと書き込みのためにファイルを開きます。 ファイルがすでに存在する場合、それは上書きされます。 ファイルが存在しない場合は、新しいファイルを作成します。 |
WB + | バイナリ形式の読み込みと書き込みのためにファイルを開きます。 ファイルがすでに存在する場合、それは上書きされます。 ファイルが存在しない場合は、新しいファイルを作成します。 |
A | 追加するためにファイルを開きます。 ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます。 換言すれば、新たなコンテンツは、既存のコンテンツに書き込まれた後。 ファイルが存在しない場合は、書き込み用の新しいファイルを作成します。 |
AB | バイナリ形式の追加のためのファイルを開きます。 ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます。 換言すれば、新たなコンテンツは、既存のコンテンツに書き込まれた後。 ファイルが存在しない場合は、書き込み用の新しいファイルを作成します。 |
+ | 読み取りと書き込みのためにファイルを開きます。 ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます。 これは、ファイルが開かれるモードが追加されます。 ファイルが存在しない場合は、読み書きのための新しいファイルを作成します。 |
AB + | バイナリ形式の追加のためのファイルを開きます。 ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます。 ファイルが存在しない場合は、読み書きのための新しいファイルを作成します。 |
ファイルには、属性オブジェクト
ファイルが開かれた後、あなたはファイルに関する情報のすべての種類を取得することができ、ファイルオブジェクトを持っています。
次はに関連するすべてのファイル属性とオブジェクトのリストです:
プロパティ | 説明 |
---|---|
file.closed | ファイルが閉じている場合、それ以外の場合はfalseを返し、trueを返します。 |
file.mode | 開いているファイル・アクセス・モードに戻ります。 |
file.name | ファイルの名前を返します。 |
file.softspace | 印刷出力を使用する場合は、スペース文字が続かなければならない、それはfalseを返します。 それ以外の場合は、trueを返します。 |
以下の例:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 打开一个文件 fo = open("foo.txt", "wb") print "文件名: ", fo.name print "是否已关闭 : ", fo.closed print "访问模式 : ", fo.mode print "末尾是否强制加空格 : ", fo.softspace
上記の出力の例:
文件名: foo.txt 是否已关闭 : False 访问模式 : wb 末尾是否强制加空格 : 0
close()メソッド
近くにFileオブジェクト()任意の情報を更新する方法は、彼らはもはや書き込むことができない、その後、バッファを書き込み、ファイルを閉じません。
別のファイルに再割り当てするファイルオブジェクトを参照する場合、Pythonは、以前のファイルを閉じます。 ファイルを閉じるには、close()メソッドでは良い習慣です。
構文:
fileObject.close();
例:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 打开一个文件 fo = open("foo.txt", "wb") print "文件名: ", fo.name # 关闭打开的文件 fo.close()
上記の出力の例:
文件名: foo.txt
ファイルを読み書き:
ファイルオブジェクトは、私たちは、より簡単にファイルにアクセスすることを可能にする多数の方法を提供します。 ファイルを読み書きするために()メソッドを読んで()を使用し、作成する方法を参照してください。
write()メソッド
開いているファイルは任意の文字列を書き込む()メソッドを記述します。 Pythonの文字列ではなく、単なるテキストよりも、バイナリデータとすることができることに留意することが重要です。
write()メソッドは、文字列( '\ n')での末尾に改行を追加しません。
構文:
fileObject.write(string);
ここでは、パラメータは、ファイルの内容を開くために書き込まれる渡されます。
例:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 打开一个文件 fo = open("foo.txt", "wb") fo.write( "www.w3big.com!\nVery good site!\n"); # 关闭打开的文件 fo.close()
上記の方法は、foo.txtというファイルを作成し、受信した文書の内容を書き込み、最後にファイルを閉じます。 あなたはこのファイルを開く場合は、次のように表示されます。
$ cat foo.txt www.w3big.com! Very good site!
()メソッドを読んで
読んで()メソッドは、開いているファイルから文字列を読み込みます。 Pythonの文字列ではなく、単なるテキストよりも、バイナリデータとすることができることに留意することが重要です。
構文:
fileObject.read([count]);
ここで、引数はオープンファイルのバイト数の読み取りから渡されています。 ファイルの先頭から開始した方法はありません、着信回数場合、それはおそらく、ファイルの終わりまで、できるだけ多くのコンテンツを読み込もうと、読み込まれます。
例:
ここでは、上記で作成したfoo.txtというファイルを使用します。
#!/usr/bin/python # -*- coding: UTF-8 -*- # 打开一个文件 fo = open("foo.txt", "r+") str = fo.read(10); print "读取的字符串是 : ", str # 关闭打开的文件 fo.close()
上記の出力の例:
读取的字符串是 : www.w3big
ファイルの場所:
ファイルの場所
教えて()メソッドを使用すると、ファイル内の現在位置を伝えます。言い換えれば、次の読み取りまたは書き込みは、ファイルの先頭の後に非常に多くのバイトを発生します。
現在のファイルの場所を変更する方法([から、]オフセット)求めます。 オフセット変数を移動するバイト数を示します。 バイトの変数を移動するには、開始から基準位置を指定します。
以下の場合は、バイトを移動するための基準位置として、ファイルの始まりを意味し、0に設定されています。 1、基準位置として、現在の位置に設定した場合。 それは2に設定されている場合、ファイルの末尾には、基準位置として使用されます。
例:
私達とのファイルにfoo.txtという上記で作成しました。
#!/usr/bin/python # -*- coding: UTF-8 -*- # 打开一个文件 fo = open("foo.txt", "r+") str = fo.read(10); print "读取的字符串是 : ", str # 查找当前位置 position = fo.tell(); print "当前文件位置 : ", position # 把指针再次重新定位到文件开头 position = fo.seek(0, 0); str = fo.read(10); print "重新读取字符串 : ", str # 关闭打开的文件 fo.close()
上記の出力の例:
读取的字符串是 : www.w3big 当前文件位置 : 10 重新读取字符串 : www.w3big
名前を変更し、ファイルを削除します
Pythonのosモジュールを使用すると、ファイルの名前を変更し、削除などのファイル処理操作方法を、実行を助けるために用意されています。
あなたは、関連するさまざまな機能を呼び出すことができます前に、このモジュールを使用するには、まずそれをインポートする必要があります。
()メソッドの名前を変更します。
名前の変更()メソッドは、2つのパラメータ、現在のファイル名と新しいファイル名を必要とします。
構文:
os.rename(current_file_name, new_file_name)
例:
次の例では、すでにtest1.txtというのが存在するファイルの名前を変更します。
#!/usr/bin/python # -*- coding: UTF-8 -*- import os # 重命名文件test1.txt到test2.txt。 os.rename( "test1.txt", "test2.txt" )
()メソッドを削除
あなたがファイルを削除するには、remove()メソッドを使用することができ、ファイルの名前をパラメータとして削除する提供する必要があります。
構文:
os.remove(file_name)
例:
次の例では、すでにtest2.txtという名前が存在するファイルを削除します。
#!/usr/bin/python # -*- coding: UTF-8 -*- import os # 删除一个已经存在的文件test2.txt os.remove("test2.txt")
ディレクトリ内のPython:
すべてのファイルは、さまざまなディレクトリに含まれていますが、Pythonは簡単に扱うことができます。 osモジュールは、あなたが作成するのに役立つ、削除、およびディレクトリを変更するには、多くの方法があります。
MKDIR()メソッド
あなたはosモジュールのMKDIR()メソッドは、新しいディレクトリを作成し、使用することができ、現在のディレクトリにあります。 あなたが作成するディレクトリの名前を含むパラメータを提供する必要があります。
構文:
os.mkdir("newdir")
例:
次の例は、現在のディレクトリに新しいディレクトリのテストを作成します。
#!/usr/bin/python # -*- coding: UTF-8 -*- import os # 创建目录test os.mkdir("test")
chdir()メソッド
あなたは、現在のディレクトリを変更するにchdir()メソッドを使用することができます。 パラメータのchdir()メソッドを使用すると、現在のディレクトリのディレクトリ名として設定することが必要です。
構文:
os.chdir("newdir")
例:
次の例では、 "/ホーム/ newdirが「ディレクトリを入力します。
#!/usr/bin/python # -*- coding: UTF-8 -*- import os # 将当前目录改为"/home/newdir" os.chdir("/home/newdir")
GETCWD()メソッド:
GETCWD()メソッドは、現在の作業ディレクトリを表示します。
構文:
os.getcwd()
例:
次の例では、現在のディレクトリを示しています。
#!/usr/bin/python # -*- coding: UTF-8 -*- import os # 给出当前的目录 os.getcwd()
rmdirを()メソッド
RMDIR(ディレクトリを削除する)方法、パラメータとして渡されたディレクトリ名。
このディレクトリを削除する前に、そのすべての内容は最初にクリアしてください。
構文:
os.rmdir('dirname')
例:
次は削除 "を/ tmp /テスト"ディレクトリの一例です。 完全準拠のディレクトリ名は、それ以外の場合は、カレントディレクトリ内のディレクトリを検索し、指定する必要があります。
#!/usr/bin/python # -*- coding: UTF-8 -*- import os # 删除”/tmp/test”目录 os.rmdir( "/tmp/test" )
ファイル、ディレクトリ、関連する方法
3つの方法はWindowsとUnixオペレーティング・システム上のファイルやディレクトリの重要な源であることができ、次のように、実用的な取り扱いと操作の広い範囲を実行します。
- Fileオブジェクトメソッド :ファイルオブジェクトがファイルを操作する一連の方法を提供します。
- OSオブジェクト :ファイルやディレクトリの系列を処理するための方法を提供します。