ファイルベースによる文字エンコーディングの見直し(B)

エンコード1文字
のアルファベットと数字の対応表
ASCII:英語の文字は、1バイト= 1英語の文字識別することができます
こんにちは
| 8ビット| 8ビット| 8ビット| 8ビット、8ビット

GBK:中国語の文字と英語の文字を、2バイト= 1つの漢字英語の文字1バイト= 1
あなたは良いです
8ビット| | 8ビット| 8ビット| 8ビット 、8ビット
、あなたの
最初の部分のための1111 1111中国語の文字を識別する| 1111 1111が

0にされた最初の場所で0111 1111英語の文字| 0111 1111を
第1のメモリにでエンコードされて保存されたセーブ取り外さ


Unicodeの
1 。文字の国との互換性が
バイナリコード2.有する任意の他のリレーションシップ・マッピング
Unicode-> GBKコーディング
GBK->ユニコード復号
UTF-8:Unicodeは凝縮バージョンである(フォーマット変換)3バイト= 1つの漢字、1バイト英文字1 =

Pythonアプリケーションにおける2文字エンコーディング
1.ヘッダ追加、最初の2つのステージの歪みのないPythonプログラムの実行を確保する
ファイルの最初の行には、書き込まれる:#coding:ファイルが格納されたコード

2。文字列型の進化:
:python2型「string」二種類がある
入力
GBK:#codingを
バイナリコードX =「」記憶される#侯GBK「オン」

タイプの二つは
X = U「」Unicodeの#1に格納される「オン」

のpython3二つの「ストリング」タイプ関連
X =「」バイナリコード侯#ユニコードに格納される

x.encode(「GBKは」)に変換されます。バイナリコードは、バイトされる
文字列は、バイナリ型で符号化することができる

。3.結論
それはテイク符号化され格納されるべきものに何エンコーディング1.歪みを確実にする
python2で定義された2列、Uプレフィックスないはず
で3. Pythonの書き込み時にファイルのヘッダに追加されなければならない

基本的なフローファイル処理:
1.ファイルオブジェクトを取得するためにファイルを開く(ファイルオブジェクトを====>ファイルを開くためのオペレーティング・システム==>ハードディスク)
F =オープン(R&LT「ファイルパスネイティブ文字列'モード=')オープンモード'符号化='文字コードを」ファイルR代表

2.ファイル操作:書き込み/読み取り
達し、f.read()
f.readlines()
f.readline()
f.readable()


オペレーティングシステム3.閉じるファイルコマンド、オペレーティング・システム・リソースの回復
f.close()
F =オープン(R&LT 'ファイルの場所'、MODE = 'RT'、エンコード= 'UTF-8')
f.close()
プリント( F)


II:コンテキスト管理
オープン(R「ファイルの場所」とモード= 'RT'、エンコード= 'UTF-8')Fとして:
データ= f.read()
印刷(データ)
を印刷(「=」* 100)
ラインFにするために、次の手順#は最後を指しているファイルポインタの内容を読み取るために、ファイルの内容を読んでいない
印刷(ライン)

は本日概要
1.ファイルオープンモード
2ファイル操作方法
文献3内のポインタの移動(能動制御がパッシブトリガーない)

ファイルモードを開くには、三つのモード純度を有する:R(デフォルト)WA
ファイルの内容の制御の2つの動作モード:T(デフォルト)B
前提:TBモードを単独で使用することはできません、それは純粋なモードで使用する必要があります
トンのテキストモード:
1.ファイルは、文字列単位で読み込まれる
テキストファイルのみのため2.
3.は、符号化パラメータを指定する必要があります
バイナリモードB:
1.読み書きするファイルはバイト/バイナリユニットである
すべてのファイルがために2缶
3符号化パラメータを指定しないようにしてください

二つのオープン・ファイル・モードでは、詳細な
読み取り専用1.rモード:与えられたファイルが存在しない場合、直接ファイルの先頭にファイルポインタに存在する
オープン(「ファイルの場所」と、モード=「RT」、エンコード=「UTF-8」
を印刷(f.readlines())


2.w書き込み専用モード:存在しないファイルで空のドキュメントを作成し、ケースのファイルポインタファイルがあるが、ファイルの先頭に移動します
オープン(「B.TXT」モードはと =「重量」、エンコード=「UTF-8」) F AS:
印刷(f.writable())書き込み可能な書き込み可能な真#を返し
、印刷は(f.readable())#がfalseを返した場合は読めなく読める
f.write( 'こんにちは\ N-')
f.write( #が強調)「私はそうは\ nよ」:ファイルに空に閉じることなく、後に書かれた内容は、内容の書き込みにフロントの後ろに従わなければならない
「みなさん、こんにちは\ N-」)(f.writeを
f.write(「111 \ n22222 \ n3333 \ N- ')
行= [' 1111 '' 2222 '' 33333「]
行で行の
f.write(ライン)
f.writelines(ライン)

#ユーザ認証機能
inp_name =入力( '自分の名前を入力してください:')。ストリップ()
Inp_pwd INPUT =( 'あなたのパスワードを入力してください:')。ストリップを()
オープン(r'.txtで'MODE =' RT 'エンコード=' UTF-8 'F AS):
ラインでのfに対するユーザーが入力した#名とパスワードと内容を読み取るには、よりやる
\ U、P = line.strip(' (N「)分割。 ':')
inp_name inp_pwd == == UとP-IF:
印刷( '成功着陸')
BREAK
他に:
印刷( 'アカウントとパスワードエラー')

登録機能:
名= INPUT( 'ユーザ名>>>:') .strip()
ストリップ():PWD = INPUT( '>>>パスワード')。
オープンで(AT r'.txt 'MODE =' 'エンコード=' UTF-8 ')F AS:
情報=' % S:%S \ n -で'%(名前、PWD)
f.write(情報)
3.Aのみ追加書き込みモード:存在しないファイルで空のドキュメントを作成するには、ファイルの終わりには、与党のファイルに直接移動されますがあり
、オープンで(r'.txt」、:Fとして、符号化= 'UTF-8') 'で'モード=
f.write( '4444 \ n555する\ n')

R&LT W + A +#+
開くとともにF AS(r'a.txt 'MODE =' + R&LT T 'エンコード=' UTF-8「):T +#1 R&読み書きLTモード
プリント(f.readline())
f.write( 'こんにちは')

B:バイナリユニットが読み出される
オープン(r'.txt 'MODE =' RB ')とF AS:
プリント(f.readline())
f.writeを('ハロー')
を開くと(R&LT' .txtファイル'MODE =' RB 'F AS):
プリント(f.readline())
データは、f.read =()に達した
プリント(data.decode(' UTF-8を使用してUTF-8「))#復号を
オープンとF AS(r'1.png 'MODE =' RB「):
印刷(f.readline())
データは、f.read =()に達した
プリント(データ)出力をバイナリ#を復号することができません

オープン(r'.txt 'MODE =' WB ')F AS:
f.write('こんにちは'.encode(' UTF-8 ' ))
のコピーペースト原理
オープン(r'1.pngと' = F AS MODE 'RB'):
データに達し、f.read =()

':Fとしてオープン(r'2.png 'モード=' WB)と
f.write(データ)
#拷贝工具
(源文件路径: ').strip()SRC_FILE =入力'
dst_file =入力('目标文件路径: ').strip()
オープン(rの' %s'は%SRC_FILE、モード= '' read_f、オープン(Rとして) 'RB%s'は%dst_file、モード= 'write_fなど)' WB:
ラインの中read_f:
プリント(ライン)
write_f.write(ライン)

おすすめ

転載: www.cnblogs.com/liugangjiayou/p/11616119.html