1.ファイル操作プロセス
1、 ファイルを開く
open('C:\a.txt\nb\c\d.txt')
解決策1:推奨
open(r'C:\a.txt\nb\c\d.txt')
解決策2:
open('C:/a.txt/nb/c/d.txt')
f = open(r'aaa / a.txt '、mode =' rt ')#fの値は変数であり、アプリケーションのメモリスペースを占有します
2、 操作ファイル:
ファイルを読み書きするために、ファイルに対するアプリケーションの読み取りおよび書き込み要求はすべてオペレーティングシステムにシステム呼び出しを送信し、オペレーティングシステムはハードディスクを制御して入力をメモリに読み取ったり、ハードディスクに書き込んだりします。
res=f.read()
3、 ファイルを閉じる
f.close()#オペレーティングシステムリソースをリサイクルする
f.read()#変数fは存在しますが、読み取ることができなくなりました
2.リソース管理とコンテキスト管理
ファイルを開くには、アプリケーションの変数fとオペレーティングシステムによって開かれるファイルの2つのリソース部分が含まれます。
ファイルを操作した後、これら2つの部分のリソースをリサイクルする必要があります
通常、リサイクルには2つの方法があります。
1 f.close()#オペレーティングシステムによって開かれたファイルリソースを回復する
2 del f#アプリケーションリソースをリサイクルする
その中で、del fはf.close()の後に発生する必要があります。そうしないと、オペレーティングシステムによって開かれたファイルを閉じることができません。
Pythonのガベージコレクションメカニズムでは、del fが順不同であると見なすことができるため、fclose()は操作の後に実行する必要があることを覚えておく必要があります。
しかし、私たちは怠惰または忘れているので、pythonにはコンテキストの管理に役立つwithキーワードがあります。
pass
open(‘b.txt’,mode=’rt’) as f2:
res1=f1.read()
res2=f2.read()
print(res1)
3.ファイル操作モード
ファイルの読み取りおよび書き込み操作のモードは次のとおりです。
ファイルの内容の読み取りと書き込みのモードは次のとおりです。
tテキストモード:1。ファイルの読み取りと書き込みはすべて文字列に基づいています
2.テキストファイルのみ
3.エンコーディングパラメータを定式化する必要があります
bバイナリモード:1。ファイルの読み取りと書き込みはすべてバイトに基づいています
2.すべてのファイルをターゲットにできます
3.エンコーディングパラメータを作成してはなりません
強調:tとbは単独で使用することはできず、r / w / aと組み合わせて使用する必要があります
各モードのリファレンスケース
1、 r(デフォルトの動作モード):
読み取り専用モード。ファイルが存在しない場合はエラーを報告し、ファイルが存在する場合はファイルポインタが開始位置にジャンプします。
withopen('c.txt',mode='rt',encoding='utf-8')as f:print('初めて読む'.center(50,'*'))
res=f.read() #ハードディスクからメモリにすべてを読み取ります
print(res)withopen('c.txt', mode='rt', encoding='utf-8')as f:print('2回目の読書'.center(50,'*'))
res1=f.read()print(res1)
ユーザー認証機能を実現
inp_username=input('your name : ').strip()
inp_password=input('your password : ').strip()withopen('user.txt',mode='rt',encoding='utf-8')as f:for line in f:
# print(line,end='') # egon:123\n
username,password=line.strip().split(':') #割り当てを圧縮し、ファイル内のユーザー名とパスワードを取り出します
if inp_username == username and inp_password == password:print('login successfull')breakelse:print('ユーザーネームまたはパスワードが違います')
アプリケーション====》ファイル
アプリケーション====》データベース管理ソフトウェア=====》ファイル
2、 w:書き込み専用モード。ファイルが存在しない場合は空のファイルが作成され、ファイルが存在する場合はファイルがクリアされ、ポインタが先頭になります。
withopen('d.txt',mode='wt',encoding='utf-8')as f:
# f.read() #エラー、判読不能
# f.write('チャレ\n')
# 強調1:
# ファイルがwモードで開かれているが、閉じられていない連続書き込みの場合、新しいコンテンツは常に古いコンテンツに従います。
# withopen('d.txt',mode='wt',encoding='utf-8')as f:
# f.write('チャレ1\n')
# f.write('チャレ2\n')
# f.write('チャレ3\n')
# 強調2:
# wモードでファイルを再度開くと、ファイルの内容がクリアされます
# withopen('d.txt',mode='wt',encoding='utf-8')as f:
# f.write('チャレ1\n')
# withopen('d.txt',mode='wt',encoding='utf-8')as f:
# f.write('チャレ2\n')
# withopen('d.txt',mode='wt',encoding='utf-8')as f:
# f.write('チャレ3\n')
ケース:wモードを使用して新しいファイルを作成します
ファイルコピーツール
ファイルを読み取り、別のファイルを書き込み、読み取りを書き込みにコピーするだけです。
# src_file=input('ソースファイルのパス: ').strip()
# dst_file=input('ターゲットファイルパス: ').strip()
# withopen(r'{}'.format(src_file),mode='rt',encoding='utf-8')as f1,\
# open(r'{}'.format(dst_file),mode='wt',encoding='utf-8')as f2:
# res=f1.read()
# f2.write(res)
3、 a:書き込みを追加するだけで、ファイルが存在しない場合は空のドキュメントが作成され、ファイルが存在する場合はファイルポインタが最後に直接調整されます。
withopen('e.txt',mode='at',encoding='utf-8')as f:
# f.read() #エラーを報告し、読み取ることができません
f.write('1\n')
f.write('2\n')
f.write('3\n')
wモードとモードの類似点と相違点を強調します。
1 同じ点:開いているファイルが閉じられていない場合は、継続的に書き込みます。新しく書き込まれたコンテンツは、常に以前に書き込まれたコンテンツに従います。
2 違い:モードでファイルを再度開くと、元のファイルコンテンツはクリアされませんが、ファイルポインターがファイルの最後に直接移動し、新しく書き込まれたコンテンツは常に最後に書き込まれます。
ケース:モードは、ロギングや登録など、元のファイルメモリに基づいて新しいコンテンツを書き込むために使用されます
登録機能
name=input('your name : ')
pwd=input('your name : ')withopen('db.txt',mode='at',encoding='utf-8')as f:
f.write('{}:{}\n'.format(name,pwd))
理解する:+は単独では使用できず、r、w、aと協力する必要があります
r +、w +、a +:読み取りと書き込み
以上が本稿の内容ですので、皆様のご勉強に役立てていただければ幸いです。
Recommended Posts