この記事では、分析上の入力と出力のインスタンスのpython3ベースを説明し、重要な知識ポイント、参照下に困っている友達
一般的に言えば、Pythonプログラムは、キーボードからの入力を読み取ることができ、あなたはまた、ファイルからの入力を読み取ることができ、かつプログラムの結果が画面に出力することができ、それは将来の使用のためにファイルに保存することができます。この記事では、Pythonの最も基本的なI / O機能をご紹介します。
まず、コンソールI / O
1.読むキーボード入力
標準入力行から読み取るための、([プロンプト])関数の入力を内蔵し、(末尾の改行を除去する)文字列を返します。
s = input("Enter your input:")
注:Pythonの3.xバージョンでraw_input()関数をキャンセル。
画面2.印刷
最も簡単な方法は、出力print文を使用することで、あなたはそれを渡すことができ、ゼロ以上の式は、カンマで区切ら:
print([object, ...][, sep=' '][, end='endline_character_here'][, file=redirect_to_here])
角括弧にはオプションです、9月には区切り文字を示し、最後にはターミネータを表し、ファイルには、リダイレクトを示しファイル。あなたは9月、終わりを与える場合は、ファイルは、キーワードのパラメータ値を使用する必要があり、指定しました
print('hello', 'world', sep='%') # 输出 hello%world
print('hello', 'world', end='*') # 输出 hello world*,并且不换行
第二に、ファイルI / O
ファイルを読み書きする前に、ファイルを開くための最初のopen()関数、それはファイルオブジェクト(ファイルオブジェクト)を返します。
f = open(filename,mode)
モードパラメータを指定しない場合、デフォルトのファイルは、「R」モードに開放されています。モード文字は次のとおりです。
R:読み取り専用
W:書き込みファイルが既にそれが上書きされますが存在する場合にのみ。ファイルが存在しない場合、新しいファイルを作成
リーダー(ないのみ):+
A:ファイルの追記を開く、書き込み専用、新しいファイルが存在しない作成、
B:バイナリモード(単独ではないが)
だから、+、RB、WB、RB wで可能なモードR、Rの+、およそ+、WB +、+、AB、AB +、Wとだけあなたがファイルを作成できることに注意してください。
通常、ファイルは(デフォルトはUTF-8である)であるファイルから読み込んで(テキストモード)開かれ、テキストモードで符号化するために特定の文字列のエンコード形式さです。ファイルがバイナリモード(バイナリモード)で開かれている場合は、データ・バイトは、オブジェクトの形式で読み書きされます。
f = open('a.txt','wb+')
f.write('I like apple!') # 报错
f.write(b'I like apple!') # 以bytes对象的形式进行读写
オブジェクトバイト不変127の整数0の配列、又はその目的のバイナリデータを格納することである純粋なASCII文字です。
これは、リテラルバイトを作成するために「B」が先行する文字列であってもよく、
また、)を介してバイトバイト(オブジェクトを作成するために機能することができます。
注:バイト()関数は、文字列を初期化する場合、それは符号化を提供しなければなりません。
b1 = b'This is string'
b2 = bytes('This is string', 'UTF-8') # 必须指定编码格式
バイト列オブジェクトとオブジェクトは、バイトにSTRに、互換性のないオブジェクトがデコード()メソッドを使用して復号されなければならないバイト。
b = bytes('This is string', 'UTF-8')
print(b, b.decode(), sep='\n')
# 输出:
# b'This is string'
# This is string
ファイルオブジェクトのメソッド(仮定fはファイルオブジェクトです)。
f.read(サイズ):データのサイズバイトを読み取り、次いで、文字列またはオブジェクトとしてバイトを返します。サイズは、サイズを指定しない場合、ファイルのすべての内容が読み込まれ、オプションのパラメータです。
f.readlineは():行を読み込みます。文字列の終わりに(\ N-)、文書の終わり場合、空の文字列を返す改行を残すだろう。
f.readlines():リストに格納されているすべての行を読み取り、各要素がリスト(F)に対応し、線です。
f.write(文字列):文字列がファイルに書き込まれ、書き込まれた文字数を返します。あなたがバイナリモードでファイルを書き込む場合は、バイトのオブジェクトに文字列を変換する必要があります。
f.tell()戻り値:ファイルオブジェクトの位置が現在位置している、それはファイルの先頭からのバイトカウント数です。
f.seek(オフセット、from_what)におけるファイルオブジェクトの場所を変更します。オフセット、from_what値0(ヘッダ、デフォルト)、1(現在位置)、2(ファイルの終了)が基準位置を基準位置に対して示してオフセットされています。
f.close():閉じるファイルオブジェクト。
これらは、より多くのファイルオブジェクトのメソッドよりも、当然のことながら、非常に一般的に用いられている方法です。オープンモードに応じて、)(オープンはファイルオブジェクトの種類が異なる返します。
TextIOWrapper:テキストモード、リターンTextIOWrapperオブジェクト。
BufferedReaderのは:バイナリ、RB、リターンをBufferedReaderオブジェクトをお読みください。
BufferedWriterの:書き込みと追記バイナリ、ある、WB、AB、BufferedWriterのオブジェクトを返します。
BufferedRandom:読み取り/書き込みモード、即ち、+モード返すBufferedRandomオブジェクトを含みます。
あなたはすべてのそれらのメソッドを参照するファイルオブジェクトにDIR()またはヘルプを()を実行することができます。
彼は加えました:
図1は、テキストモードでは、単にファイルの先頭からの相対配置()メソッドを求めます。(ファイルの終わりを位置決めすることに加えて求めることができる(0、2)外は)
2、ファイルオブジェクトは、ループの反復がライン毎に読み取ることができます。
for line in f:
print(line, end='')
第三に、フォーマットされた出力
一般的に、我々は、単にスペースで区切られたのではなく、出力形式をより細かく制御したいです。2つの方法があります。
最初は自分自身を制御することです。弦セクションは、接続動作並びに有用動作文字列が含まれます。
第二は、str.format()メソッドを使用することです。
以下に例を与えます:
# 第一种方式:自己控制
for x in range(1, 11):
print(str(x).rjust(2), str(x*x).rjust(3), end=' ')
print(str(x*x*x).rjust(4))
# 第二种方式:str.format()
for x in range(1, 11):
print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x))
# 输出都是:
# 1 1 1
# 2 4 8
# 3 9 27
# 4 16 64
# 5 25 125
# 6 36 216
# 7 49 343
# 8 64 512
# 9 81 729
# 10 100 1000
第一の実施形態では、ストリングの効果str.rjust文字列オブジェクト()メソッドは、右であり、スペースが左デフォルトフィルは、方法と類似str.ljust()とstr.center()があります。これらのメソッドはそうではありません切り捨て、文字列の操作を行い、入力が非常に長い場合、彼らはちょうど、新しい文字列を返し、何も書き込みません。私たちは広場とキューブテーブルの出力、使用str.format()は非常に簡単になりますも注意してください。
次のようにstr.format()が実質的に使用されます。
>>> print('We are the {} who say "{}!"'.format('knights', 'Ni'))
We are the knights who say "Ni!"
ブラケットと括弧文字は中)(formatパラメータで置き換えられます。.. 括弧内の数字は、着信オブジェクトの位置を指定するために使用されます。
>>> print('{0} and {1}'.format('Kobe', 'James'))
Kobe and James
>>> print('{1} and {0}'.format('Kobe', 'James'))
James and Kobe
あなたは()キーワードパラメータ形式を使用する場合は、それらを使用してパラメータ名の値を指します。
>>> print('The {thing} is {adj}.'.format(thing='flower', adj='beautiful'))
The flower is beautiful.
オプション「:」やフォーマットをより良くすることができますフォーマット識別子フィールド名を、従うことができます:
>>> import math
>>> print('The value of PI is {0:.3f}.'.format(math.pi))
The value of PI is 3.142.
では「:」整数を通過した後、あなたはフィールドが少なくともそんなに幅があることを確認することができ、便利なテーブルを美化するために使用する場合:
>>> table = {'Jack':4127, 'Rose':4098, 'Peter':7678}
>>> for name, phone in table.items():
... print('{0:10} ==> {1:10d}'.format(name, phone))
...
Peter ==> 7678
Rose ==> 4098
Jack ==> 4127
また、パラメータが解凍出力をフォーマットすることができます。たとえば、キーワードの表は、アンパックパラメータです。
table = {'Jack':4127, 'Rose':4098, 'Peter':7678}
print('Jack is {Jack}, Rose is {Rose}, Peter is {Peter}.'.format(**table))
# 输出:Jack is 4127, Rose is 4098, Peter is 7678.
彼は加えました:
%ストリング演算子は書式を実現することができます。これは、同様のパラメータのsprintf()形式の文字列式、及び右に置換を残しました。
import math
print('The value of PI is %10.3f.' %math.pi)
# 输出:The value of PI is 3.142.
この古い形式で、最終的にPython言語から削除されますので、あなたがより多くの利用str.formatをする必要があります()。
私たちは、高齢者が学習しているかを確認するためにサイトを学ぶのpythonをお勧めします!基本的なPythonスクリプト、爬虫類、ジャンゴ、データマイニング、プログラミング技術から、だけでなく、戦闘にゼロベースのpython小さなパートナーを学ぶすべての愛に与えられたデータ項目を、並べ替え!Pythonのベテランの日には、学習し、細部に注意を払う必要性に、クリックにご参加くださいする方法のいくつかを共有するために、技術のタイミングを説明する必要が学習者の集まりPYTHON
附属書:テキストモードとバイナリモード
1は、Windowsシステム、テキストモードで、デフォルトではライン、Windowsプラットフォーム識別子\ rを\ nは\ n個に読んだが、R \ nは\に\ n個を書くときの終わりです。テキストファイルのこの隠された動作は問題ではありませんが、JPEGやEXEなどのバイナリデータのための可能性が間違って行くことです。これらのファイルを使用する場合は、バイナリモードを使用するように注意してください。
2クラスのUnix / Linuxシステム、回線識別子の端\ n、すなわちファイル\ nは改行を表します。だから、UNIX / Linuxシステムは、テキストモードとバイナリモードで違いはありません。
例として、本明細書の読者ハンズ試験、インプレッション、一層強固な把持Pythonの基礎を深めるためです。