まず、文字エンコーディング
テキストの文字エンコーディングは、唯一の文字エンコーディングに関するテキストで、その上の他のビデオファイル、オーディオなどを検討する必要はありません。
人間の動作するコンピュータにより入力されたときに文字を読むことができるが、コンピュータは、文字コード表を使用して、文字と数字との対応関係次いで、処理すべき010101ようなバイナリデータを認識することができます。
最初は英語ビットのバイナリ文字を示すASCIIテーブルであるが、それは唯一の中国には適していません、英語と一部の記号で表現することができます。だから、GBKのエンコーディング形式のうち、中国自身は、2バイトで漢字を表します。上記の導出に基づき、各国のテキストは、あなたが非常に簡単にお互いを使用したい場合は、その後、コードの形式は同じではありません使用し、異なっています。だから、2バイトで統一ユニコードユニコード、外のすべての文字を表します。
Unicodeには二つの特徴があります:1、すべての文字が文字2バイトで表現されているので、それは収納スペースの多くを無駄にします。2.io数の増加、動作効率化プログラムは、(これは致命的である)を低減します
後でこれらの二つの特性を改変:ハードディスクの存在ユニコード符号化フォーマットデータメモリは、UTF-8でエンコード続きます。オリジナルの英語2バイトからUnicode文字が1Bytesなります。オリジナルの2バイトから中国のUnicode文字が3バイトになります。
今すぐコンピュータ:
メモリはUnicodeです
ハードディスクは、UTF-8であります
あなたは知っておく必要があります。
ユニコード二つの特徴:
1.利用者は関係なく、文字入力が国の文字と互換性があるか、入っていません
2.他の国のユニコード符号化されたデータは、他の諸国との関係をエンコードされたメモリにハードディスクから、我々は対応しています。
ハードディスクへのメモリから格納されたデータ:
メモリ内のバイナリデータの1 Unicode形式>>>符号化(エンコード)>>>ハードディスクUTF-8フォーマット、バイナリデータ
2.ハードディスクUTF-8フォーマット>>>ユニコードフォーマット、復号(デコード)してバイナリデータ>>>メモリ内のバイナリデータ
なぜ我々は明らかにファイルを文字化けする必要があります読んフォーマットと保存されたファイルの形式が同じではないので(******)
python2とのpython3の異なる点があります。
python2:テキストファイルに従い、PYファイルは、インタプリタのデフォルトのASCIIコードに読み込まれます
python3:PYファイルのテキストファイルに応じては、インタプリタのデフォルトのUTF-8に読み込まれ
ヘッダ#コード:UTF-8ライトPYの初めに、このヘッダ・ファイルは、自動的に符号化フォーマットに変換します
追加:UTF-8形式を使用して1.pycharm端子
2.windows端子は、GBKを使用しています
文字エンコーディングの概要:
私たちは、コード例を使用します。
X = 'オン'
バイナリデータにエンコードRES1 = x.encode(「UTF-8」)#ユニコードは、UTF-8に記憶されて搬送することができます
UTF-8フォーマットはバイナリデータユニコードのバイナリデータ形式に復号ハードディスクにRES2 = res1.decode(「UTF-8」)#
第二に、ファイル操作
ファイルの処理は、3つのステップを含む:オープン(オープン)/書き込み(読み取り、書き込み)/クローズ(閉じます)
動作Pythonコードファイル#1によって #1 R&LTエスケープ解除 F =オープン(R&LT ' :D \ Pythonの\ day07の\のA.TXTを投影'、エンコード= 'UTF-8 ' )#ファイルを開く、オペレーティングシステムはに要求を送信 #アプリケーションオペレーティング・システムを介してコンピュータのハードウェアの動作をプログラムすることは、プロファイルの操作でなければなりません プリント(f)は、#のFファイルオブジェクトされて プリント(f.read())#のWindowsオペレーティングシステムのデフォルトのエンコードはGBKのある オペレーティングシステムを送信するためにf.read()#ファイルの内容を読み出す要求 f.close()#は、開いているファイルを閉じるには、オペレーティング・システムに伝えます
クローズクローズを書くことを覚えておく必要があります開いてファイルを開きます。
このより複雑な操作の上記の方法ので、ファイル・コンテキストの動作
オープンなアプローチで、この使用量が近い書き込みませ、あなたはまた、同時に複数のファイルを開くことができます。
(R&LTで開く' :\ Pythonの\ day07の\のA.TXTを投射Dが'、エンコード= ' UTF-8 ')AS F、\ オープン(R&LT ' D:\プロジェクトのPython \ day07 \ B.TXT '、エンコード= ' 8-UTF ")AS F1:F#はあなただけのリモートコントロールとして、それを入れて変数名である 印刷(F) 印刷(達し、f.read()) を印刷(F1) を印刷(f1.read())
オープンモードファイル:
R読み取り専用モードがデフォルトのモードです
W書き込み専用モード
書き込み追加モード
ファイル操作ユニットの道:
Tテキストファイル デフォルトでは、あなたはデフォルトのエンコーディングパラメータを追加しない場合は、符号化パラメータを指定してください、テキストファイルを操作する際に、書き込むことはできませんオペレーティングシステム(GBK)のデフォルトエンコーディングです
(例えば、ビデオ、オーディオファイルなど)Bバイナリデータファイルを 使用すると、符号化パラメータでこれを書いていない場合
R読み取り専用モード
Rモードファイルが直接エラーが存在しない場合は、ファイルを開きます
読んで、readlineの、readlines:読み取りには、3つの方法があります。
一度にすべてのファイルを読んで、返されたデータは、文字列の形式で、ファイルが大きすぎる欠点があり、メモリ全体をカバーします:読み取り
readlineの:ファイルの行の内容を読んで、返される文字列のデータ形式があります
readlines:各列の各行、列として各行、大きなリスト内のすべてのデータを読み出しました
#は、テキストファイルRT読み取り 開くと(R&LTを' D:\ Pythonの\ day07の\のA.TXTを投影'、MODE = ' RT '、エンコード= ' UTF-8 ' )、F AS: プリント(f.readable()) #は、読み取り可能な 印刷(f.writable()) #書き込み可能な 印刷(f.read()) #-time読んで、ファイルのすべての内容
Fに私のために: #fがforループループごとに1、それかもしれ単一行の読み取りに
プリント(I)#この方法は、一回のために過剰なメモリの問題を解決することができ、ファイルの読み込み
#をRBとバイナリファイルの読み取り オープンして(R 「D:\ Pythonプロジェクト\ day07の\の1.jpeg 」、MODEを= ' RB ')F AS: 印刷(f.readable()) #読み取り可能な 印刷(f.writable()) #で書き込み可能な 印刷(f.read()) #ファイルの-timeすべての内容は読ん 印刷(f.read ()) #カーソルがファイルの末尾に既にある後にファイルを読んで、内容を読んでいない読み込み可能な 印刷(f.readlines()) #は、ファイルに対応するリスト内の要素のリストを返すですラインによるコンテンツのライン
W書き込み専用モード(書き込み時に注意して使用するモードでは、ファイル自体の内容ならば、それがクリアされます)
1.ファイルが存在しない場合には、それが自動的にファイルを作成します。
文書の存在は、最初のファイルの中身を空にした後、書き込み2
3つの方法があります書き込み:書き込み/ WriteLineメソッド/ writelines
(R&LTで開く' xxx.txt '、MODE = ' W '、エンコード= 'UTF-8 ' :)F AS プリント(f.readable()) #で読み取り可能なプリント(f.writable()) #か書き込み f.write(' いや、いや、あなたは〜\ nをしないように注意してください' ) f.write(' いや、いや、あなたは〜\ nをしないように注意してください' ) f.write(「いや、いや、あなたは〜\ n個の電源を入れないでください' ) f.write(' いや、いや、あなたはオンにしないでください〜\ R ' ) f.write(' いや、いや、あなたはオンにしないでください〜" ) L = [ ' 何sdffs、SDFのは〜\ N-なっていないが'、' sdfsdfは、あなたが〜\ N- sdfsfをオンにしません'、' 何のSFADない、あなたがsa〜N- \になりませんでした' ] f.writelines(L) #垂直に同等 のための I におけるL: f.write(I)
追加モード
ケースファイルには1.ファイルを作成し、存在しません。
2.ファイルの存在下で、ファイルの内容を空にしない場合、ファイルは、元の基礎を追加し、ファイルの末尾にカーソルを移動します
読めないパターンは、のみ書くことができます
開く(R&LT ' yyy.txt '、MODE = ' A '、エンコード= 'UTF-8 ' )、F AS: プリント(f.readable()) #が読み取り可能Falseでプリント(f.writable()) #か書き込み可能な真 f.write(「私は少し尾\ N-よ」)
ます。http://note.youdao.com/noteshare ID = 17303322fcbc09a85d9bd5195dec25ae&サブ= F9D47851E02B4CB7A341119637EC6BAE具体的な詳細を参照することができますか?