Pythonのファイルのopen,close,read,writeなどの操作



Pythonのファイルのopen,close,read,writeなどの操作
2018年08月13日14:22:31牛大財有大才
読解数9928
ひきあげる
pythonプログラミングと爬虫類開発シリーズPython人工知能開発シリーズ
Pythonは開発言語である以上、外部ファイルを読み込んで計算するなど、演算の結果をローカルファイルに格納するなど、外部ファイルを操作することは避けられないに違いない.pythonでよく使われる操作ファイルの方法を説明します.Pythonでファイルを操作するには1つの関数と3つのメソッドを覚える必要があります
シーケンス番号
関数/メソッド
説明
01
open
ファイルを開き、ファイル操作オブジェクトに戻る
02
read
ファイルの内容をメモリに読み込む
03
write
指定内容をファイルに書き込む
04
close
ファイルを閉じる
  • open関数はファイルを開き、ファイルオブジェクトに戻る
  • readwriteclose・3つの方法はいずれもファイルオブジェクトから呼び出す必要がある
  • 1.新規(開く)ファイルと閉じるファイル
    1.1 pythonでopen関数を使用して、既存のファイルを開くか、ファイルが存在しない場合は新しいファイルを作成します.
    フォーマットは次のとおりです.open(「ファイル名」、アクセスモード)、デフォルトで作成されたディレクトリは、現在のプログラムが存在するディレクトリです.
    fo=open("myfile.doc",'w')#このファイルが存在しない場合、現在のディレクトリにファイルが作成されます.以下の図です.
    一般的なアクセス・モードの使用方法:
    お知らせ:頻繁にファイルポインタを移動すると、ファイルの読み書き効率に影響し、開発中には読み取り専用、書き込み専用の方法でファイルを操作することが多い.
    アクセスモード
    説明
    r
    読み取り専用でファイルを開きます.ファイルのポインタはファイルの先頭に配置されます.これが既定のモードです.
    w
    書き込み用のファイルを開きます.ファイルが既に存在する場合は上書きします.ファイルが存在しない場合は、新しいファイルを作成します.
    a
    追加用のファイルを開きます.ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます.すなわち,新しいコンテンツは既存のコンテンツの後に書き込まれる.ファイルが存在しない場合は、新しいファイルを作成して書き込みます.
    rb
    読み取り専用のファイルをバイナリ形式で開きます.ファイルポインタはファイルの先頭に配置されます.これが既定のモードです.
    wb
    書き込み用のファイルをバイナリ形式で開きます.ファイルが既に存在する場合は上書きします.ファイルが存在しない場合は、新しいファイルを作成します.
    ab
    追加用のファイルをバイナリ形式で開きます.ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます.すなわち,新しいコンテンツは既存のコンテンツの後に書き込まれる.ファイルが存在しない場合は、新しいファイルを作成して書き込みます.
    r+
    読み書き用のファイルを開きます.ファイルポインタはファイルの先頭に配置されます.
    w+
    読み書き用のファイルを開きます.ファイルが既に存在する場合は上書きします.ファイルが存在しない場合は、新しいファイルを作成します.
    a+
    読み書き用のファイルを開きます.ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます.ファイルが開くと追加モードになります.ファイルが存在しない場合は、読み書き用の新しいファイルを作成します.
    rb+
    読み取り/書き込み用のファイルをバイナリ形式で開きます.ファイルポインタはファイルの先頭に配置されます.
    wb+
    読み取り/書き込み用のファイルをバイナリ形式で開きます.ファイルが既に存在する場合は上書きします.ファイルが存在しない場合は、新しいファイルを作成します.
    ab+
    追加用のファイルをバイナリ形式で開きます.ファイルが既に存在する場合、ファイルポインタはファイルの最後に配置されます.ファイルが存在しない場合は、読み書き用の新しいファイルを作成します.
    1.2ファイルの読み取りはフロー式なので、水道管のバルブのようです.操作したファイルを読み込むたびに、先にバルブopen()を開けておくので、使い終わっても閉じます.直接foclose()でいいです.
    
       
       
       
       
    1. # , :test.txt
    2. f = open( 'test.txt', 'w')
    3. # ,
    4. f.close()

    2. read/write

    1. : write(“content”), , : , ( ), .

    
       
       
       
       
    1. f = open( 'write_demo.txt', 'w') # , 。 , 。
    2. print ( " : ", f.name) #f.name ,
    3. f.write( 'hello ,I am writing ') # write , 。
    4. f.close() #

    2. : read(num) ,num ( ), num , ,read() 。 :

    • open , ,  open('aaa.txt')
    • readで んだ 、 からreadで み けるデータは んだ から
    • :read()メソッドでは、デフォルトではファイルのすべての がメモリに して み まれます.もちろん、 み まれた を できます.ファイルが きすぎるとメモリの が に きい
    • 
         
         
         
         
      1. #1.
      2. f = open( 'write_demo.txt', 'w+') # ,w+
      3. f.write( ' abc ,hello ') #
      4. f.close() #
      5. #1.
      6. f= open( "write_demo.txt", 'r')
      7. content=f.read( 3) #3 3 , byte。
      8. print( " :%s"%content)
      9. content1=f.read( 1) # read(), , read(num), 。
      10. print( " :%s"%content1)
      11. content2=f.read( 5)
      12. print( " :%s"%content2)
      13. f.close()
      14. '' '
      15. : a
      16. :b
      17. :c ,
      18. ' ''

      3. :readlines() , ( EOF) , , ( ) 。

      
         
         
         
         
      1. f = open( 'test.txt', 'r')
      2. content = f.readlines() # , ,
      3. print(type(content)) # , list
      4. i= 1 # , , 。
      5. for temp in content:
      6. print( "%d:%s"%(i, temp))
      7. i+= 1
      8. f.close()
      9. '''
      10. 1:hello,world,
      11. 2:this is a demo
      12. '''

      4. :readline(), ,(
      ). 。 , 。

      
         
         
         
         
      1. f = open( 'test.txt', 'r')
      2. content = f.readline()
      3. print( " :%s"%content)
      4. content = f.readline()
      5. print( " :%s"%content)
      6. f.close()
      7. '''
      8. :hello,world,
      9. :this is a demo
      10. '''