第十カント:文書処理のパイソン

私たちは、あなたがデータの永久保存を鎮圧したい場合は、ハードウェアを動作させるためのアプリケーションはよく知られているが含まハードディスクに格納されなければならないPythonや他の言語で書かれたアプリケーションを使用して、アプリケーションがハードウェアに直接アクセスすることはできません、その使用オペレーティングシステムに。オペレーティングシステムは、ファイルは、アプリケーション・プログラムへのオペレーティングシステムであるユーザー/アプリケーションの用途にシンプルなインターフェイスにパッケージング複雑なハードウェアの操作は、あなたが自分自身のデータを永久に保存することができるハードディスク仮想概念、ファイルを操作することにより、ユーザやアプリケーションプログラムを動作させます。

オープンおよびファイルクローズ - open()関数を

Pythonでは、既存のファイルを開くか、新しいファイルを作成するために、open関数を使用して。

関数構文オープン(名[、モード[、]をコードする、[バッファ]) 

名前:あなたがアクセスしたいファイルの名前を含む文字列値は(絶対パスと相対パスを区別するため)。
モード:モードがオープンファイルのモードが決定されますように、読み取り専用、書き込み、追加します。次のようにすべての可能な値の完全なリストを参照してください。このパラメータは必須ではありませんが、デフォルトのファイルが読み取り専用アクセスモード(R)。
エンコード:エンコードされたファイルを示すには、ファイルのみをテキストに適用されます。

 

改行=なし:に統一された\ nにプラットフォームに関係なく、(窓をrを\ n \される)、オペレーティングシステムの改行をチェック

 

ファイルの終了後の動作のために、ファイルを閉じるために、閉じる()を使用

 

1.変数にファイルハンドルと割り当てを取得するファイル、 
F =オープン(./test.txt R&LT 、エンコード= UTF-8 #のデフォルトのオープンモードはR&LT上にある

2.ハンドルファイル操作 
データ= 達し、f.read() 

3.閉じるファイル 
f.close()

 

...オープンとオープンの違い:

ファイルへのアクセス権を持つキーワードの後に​​あなたは、もはやそれをオフにする必要がある場合。これは、Pythonを決定することができます:あなたは、単にファイルを開いて、必要なときにPythonは自動的に適切なタイミングでそれをオフになるため、それを使用しています。あなたは、ファイルを開閉さ)((オープン)とクローズを呼び出す場合は、プログラムにバグが存在したら、閉じるために主要な()文が実行されていない、、、ファイルがメモリリソースまで閉じられません。

(オープンと' ./test.txt '' R ' :Fなど)
     、印刷(f.read())

F =オープン( 'test.txtの'、 'R')工程の分析

1は、アプリケーション(パイソン)によってオペレーティングシステムにシステムコールのオープン(...)を開始しました。

2、ファイルを開くには、オペレーティングシステムやアプリケーションへのファイルハンドルを返します。
3、変数fに割り当てられたアプリケーションのファイルハンドル。

強調する最初のポイント: 
変数オペレーティングシステムレベルのオープンファイル+アプリケーション:リソースファイルを開くには、二つの部分を含んでいます。ファイル操作が完了すると、地面を回収しなければならず、2つのファイル回復方法のリソースのない部分がある:
1、f.close()#ファイルレベルが回復オペレーティングシステム開き
2、アプリケーションレベルの回復デルのF#を変数

デルfがそれ以外のファイルを開くには、オペレーティング・システムを引き起こすf.close()、で発生しなければならない後は無駄フットプリントで、閉じられていない、
と自動ガベージコレクション機構のpythonは、私たちはデルfは、検討する必要があると判断しましたそれは我々が操作が完了した後、我々はf.close()を覚えておく必要がありますファイルをする必要があり

、私はそれを言うが、多くの学生はまだf.closeを(忘れて非常に恥知らずになりますが)これらの学生は長い間気にしないために、私たちは愚か者をお勧めします式の操作:コンテキスト管理で私たちを助けるためにキーワードを使用して、
F、オープン(「A.TXT」、「W」)を有する:
    合格
 
read_f、オープン(「Bオープン(「A.TXT」、「R&LT」)と.TXT '' W「)write_f AS:
    データ= read_f.read()
    write_f.write(データ)

第二の点は強調します: 
fは=オープン(...)は、オペレーティング・システムによってファイルを開くことですので、我々はオープンのエンコーディングを指定しない場合、デフォルトのエンコーディングでファイルがオペレーティング・システムを担当して明らかにされ、オペレーティングシステムが使用するオープン彼らLinuxはUTF-8での下でファイルを開くためのデフォルトのエンコーディングは、窓の下にGBKされます。
このレッスンでは、文字エンコーディングの話に知識を使用しています。どのような方法で、どのように保存されているいかなる文字化け、ファイルが開けないことを確実にするために。
F =オープン( 'A.TXT'、 R ''、エンコード= 'UTF-8')

ファイルアクセスモード

非テキストファイルの場合、我々はパターンBを使用することができ、「B」はバイト単位でやり方を表し、 bで開いたときに、読み取りバイトは、コンテンツの種類ですが、また、バイトを書くの種類を提供する必要はありませんエンコーディングを指定(しているすべてのファイルは、バイトの形で保存されているにかかわらず、テキストファイル、JGP形式の画像ファイル、AVI形式のビデオファイルの文字エンコーディングのこのモードを使用)

ファイルを操作する方法

 文書にカーソルを移動

:読み取り(3):

  1.、テキストモードでファイルを開き、3つの文字の代わりに、読み

  モードB 2.ファイルを開き、3バイトのデータが読み込ま表します

II:ドキュメント内のカーソルの残りの部分は、このようなシーク伝える、切り捨てるとしてバイト

注意:

  1. 3つの移動1,2がモードBで実行されなければならない請求項0,1,2、シークが、どちらのモードでは、バイト単位で移動可能です

  2.ファイルを切り捨てる切り捨てられるので、オープン・ファイルが書き込まれなければならない、しかしで開かまたはW + Wなど、直接空としてファイルので、そうテスト結果がR + A +など、またはモードで切り捨てることができません

ファイルの修正

データファイルはハードディスクに保存されているので、唯一のカバーがありますされ、何も変更はありません、特に二つの方法で実装され、すべてのシミュレーション結果、我々は通常、ファイルを変更見る、と言うことです。

ウェイ:すべてのメモリにロードされたハードディスクに保存されたファイルの内容を、メモリはハードディスク(ワード、VIM、nodpad ++エディタなど)へのメモリでカバーその後、修正が完了し、修正することができ、

import os

with open('a.txt') as read_f,open('.a.txt.swap','w') as write_f:
    data=read_f.read() #全部读入内存,如果文件很大,会很卡
    data=data.replace('alex','SB') #在内存中完成修改

    write_f.write(data) #一次性写入新文件

os.remove('a.txt')
os.rename('.a.txt.swap','a.txt') 

方式二:将硬盘存放的该文件的内容一行一行地读入内存,修改完毕就写入新文件,最后用新文件覆盖源文件。

import os

with open('a.txt') as read_f,open('.a.txt.swap','w') as write_f:
    for line in read_f:
        line=line.replace('alex','SB')
        write_f.write(line)

os.remove('a.txt')
os.rename('.a.txt.swap','a.txt')

 

おすすめ

転載: www.cnblogs.com/us-wjz/p/10952994.html