パイソン-------ファイル操作

まず、文書処理ワークフロー

  1.ファイルを開き、ファイルハンドルを取得し、変数に代入

  2.ファイルハンドルにフォロースルー

  3.ファイルを閉じます

Rモード、デフォルトモードでは、ファイルはエラーを存在しません。

Wモードでは、ファイルが存在しない、ファイルを作成すると、カバーが存在します

モード、ファイルが存在しない、ファイルを作成するには、コンテンツを書くための方法(使用時にログファイルを書き込むために)、追加書き込みモードを追加されます書くことは特別なモードで、カバレッジを存在しません。

B(RB、WB、AB)モード:添加せずに符号化:UTF-8

  1 F = オープン( 'c.txt'、 'RB')
   2プリント(F。読み取る())
   3  プリント(Fを。読み取る()。デコード())
   4  
  5 fは= オープン( 'd.txt'、 'WB')
   6 F。書き込み( '啦啦啦' エンコード( 'UTF-8'))
   7 F。近いです()

第二に、基本的な操作

1.ファイルモード

  ファイルハンドル=オープン(「ファイルパス」、「モード」)

ファイルを開くと、あなたはどのような方法でファイルのパスを指定し、ファイルを開く必要があります。

モードがあるファイルを開きます。

  • R、[読み取り専用モードをデフォルトのモードを、ファイルが存在している必要があり、例外がスローされないがあります]
  • 【読めなく、作成し、存在しない場合、次に内容物が空にされる]書き込み専用モード、W
  • X、書き込み専用モード[読めないと、それが作成され存在しない場合、エラーがあります]
  • [モード可読の追加、それが作成されて存在しない。のみ追加コンテンツが存在します]
  1 ##只读模式
   2#1、F = オープン(r'c.txt」、エンコード= 'UTF-8')
   3 ##の印刷( '====> 1'、F。読み取る())
   4 ##を印刷( '====> 2'、F。読み取る())
   5 ##の印刷(f.readable())
   6の##の印刷(F。のreadline()、終了 = '')
   7の##の印刷(F 。readlineの())
   8 ##の印刷( " = " * 20)
   9 ##の印刷(F。読む())
 10#の印刷(F。readlines)()
 11#fを閉じるを使用()
 12  
13#モードを書くために:ファイルが存在し、作成し、元のファイルが存在して上書きしない
 14#1、F = オープン( " new.pyを」、 'W'、エンコード= 'UTF-8')
 15#F.の書き込み( 'N- 1111111111 \')
 16#F. writelines([ 'N- \ 2222'、 'N- 2222548 \'、 'N- 978 646 \' 】)
 17#fを閉じる使用()
 18  
19  
20#の追加モード:ファイルの追加コンテンツを書き込み、存在しない場合、作成し、ファイルが存在し、上書きしないように記述する方法である
 21#1 F = オープンし(「新しい新.py」、 ''、エンコード= 'UTF-8')
 22#のF。書き込み( 'nishishuiの\ nの')
 23#Fを。writelines([A-A 'を\ n'、B-B 'を\ n'])
 24#のF。近いです()
基本動作ファイルコードの表示

「+」ファイルを同時に読み書きできることを示し

  • R +、[リーダ読み取り可能、書き込み可能]
  • + W、W Rは{読み取り、書き込み}
  • X +、[読み取り、書き込み、読み取り、書き込み}
  • +、[書き込み、読み取り、書き込み読み取り}

「B」は、バイト単位での方法を表します

  • RBまたはR + B
  • W + BまたはWB
  • + B W XBの或
  • ab 或 a+b

注:オープンな方法でB、読み取りバイトは、コンテンツの種類だけでなく、バ​​イト型の書き込みを提供する必要があるときは、エンコーディングを指定することはできません

以下のように練習、Bモードを使用して、CPツールの要件を書いては、以下のとおりです。

  1.コピー、テキスト、ビデオ、写真や他のファイルをコピーすることができ、両方の

  1 # b模式
  2 f=open('1.jpg','rb')
  3 data=f.read()
  4 # print(data)
  5 f=open('2.jpg','wb')
  6 f.write(data)
  7 print(data)

三、上下文管理

1. with open('a.txt','w')  as  f:

  pass

2.with open('a.txt','r')  as read_f,open('b.txt','w')  as  write_f:

  data=read_f.read()

  write_f.write(data)

四、文件的修改

  1 import os
  2 with open('a.txt','r',encoding='utf-8') as read_f,\
  3         open('a.txt.swap','w',encoding='utf-8') as write_f:
  4     for line in read_f:
  5         write_f.write(line)
  6 
  7 os.remove('a.txt')
  8 os.rename('.a.txt.swap','a.txt')

五、文件内光标移动

一: read(3):

  1. 文件打开方式为文本模式时,代表读取3个字符

  2. 文件打开方式为b模式时,代表读取3个字节

二: 其余的文件内光标移动都是以字节为单位如seek,tell,truncate

注意:

  1. seek有三种移动方式0,1,2,其中1和2必须在b模式下进行,但无论哪种模式,都是以bytes为单位移动的

    seek控制光标的移动,是以文件开头作为参照的。

   tell当前光标的位置

  2. truncate是截断文件,截断必须是写模式,但是不能用w或w+等方式打开,因为那样直接清空文件了,所以truncate要在r+或a或a+等模式下测试效果

  1 import time
  2 with open('test.txt','rb') as f:
  3     f.seek(0,2)
  4     while True:
  5         line=f.readline()
  6         if line:
  7             print(line.decode('utf-8'))
  8         else:
  9             time.sleep(0.2)

 

 

分类: python相关

おすすめ

転載: www.cnblogs.com/lz1996/p/11573039.html