ファイル操作から文字エンコーディングへ

相対および絶対パス

絶対パス

あなたのアドレスファイルにコンピュータのルートディレクトリから開始すると、絶対パスと呼ばれています

E:\下载内容\谷歌浏览器下载\ASSSD_6751.zip

相対パス

現在のフォルダへのファイルパスへの相対

./ASSSD_6751.zip

基本的なファイル操作

ファイルの内容を読みます

内オープン、特定のファイルを開くために、open()メソッドを使用して、Pythonは()メソッドは、ファイルのパスを書き込みます。

file_path = 'read.txt'  ##文件相对于当前文件的位置
r = open(file_path,'r')  ## 'r'是只读模式
text = r.read()
print(text)  # Hello World!
r.close()

書き込み操作も可能

file_path = 'read.txt'  ##即使这个文件不存在,'w'模式下会帮你创建这个文件
w = open(file_path,'w') ## 'w'是只写操作,并且会覆盖原来的文件内容 
w.write('Hi,my name is Gredae')  # Hi,my name is Gredae ##文件里会显示这一段话
w.close()  

もう一つの方法は、追加記述することです

file_path = 'read.txt'  ##即使这个文件不存在,'a'模式下会帮你创建这个文件
w = open(file_path,'a') ## 'a'是追加操作,并不会覆盖原来的文件内容  
w.write('Hi,my name is Gredae')
w.close() 

我々は中国で読めばしかし、その後、彼はエラーになります

私たちは、read.txt

file_path = 'read.txt'
r = open(file_path,'r')
print(r.read())
r.close()

UnicodeDecodeError:「GBK」コーデックは位置14でバイト0x8cをデコードすることはできません:違法なマルチバイト列を

コーディングエラーを報告したことが判明し、我々は振り返ると、ファイルのエンコード形式を見て:UTF-8形式は、彼のエンコード形式を発見しました。

:そして、エラー何を言って振り返る位置に「GBK」コーデックではないが、バイト0x8cデコードすることである「GBK」デコードのデコード時に見つかりました。

方法を理解するためにそれを「聞く」ことができ、同様にそれは、方言で話す福建、広東のようなものです。

この問題を解決するために、我々は物事の文字エンコーディングの話をしなければなりません

文字コード

私たちは通常、メモ帳を開き、それがメモリに書き込まれている何かを書くために(とは思わない、あなたは、彼はあなたが保存しますかプロンプトが表示されます書き込みのメモ帳ファイルのシャットダウン時に試すことができます)、そして私たちは時間がされる保存を押します物事の内部メモリは、ハードドライブに記録されているに分類されます。しかし、Unicodeエンコーディング形式のハードディスクファイルとのメモリエンコード形式は同じではありません。したがって、Unicodeのトランスコーディングを入れて、我々は例えば、符号化形式に変身するように構成された:UTF-8、GBK。

ファイルを読み込むときだから我々は、上記のエラーで表示されます。我々は、長い時間がそれにドキュメントを読み取るための何のエンコード形式にそれを伝えるために、ファイルを読み込みます。

file_path = 'read.txt'
r = open(file_path,'r',encoding='UTF-8')
print(r.read())  # 你好,世界!
r.close()

ファイルに書き込む場合も、エンコード形式を設定するだけでなく、読んだとき、あなたが保存するときに使用されるエンコード形式を使用する必要がありますすることができます。これは、一般的にUTF-8形式で使用されています。

実際には、それは文字エンコーディングを使用していない通常の状況下では、時間は一般的なエラーを使用される際に対処する必要があります。ただ、エンコードされたファイルは、あなたが取得するときにそうではないコーディング・エラーの問題として、取るべきエンコーディングどのような店を覚えています。

おすすめ

転載: www.cnblogs.com/Gredae/p/11317462.html