Pythonでのファイルの読み込みと書き込み、read()、readline()、readline()の違い


データの処理においては,ファイルからデータを読み出し,処理結果をファイルに書き込むことが避けられないため,Pythonでファイルの読み取りと書き込みを習得することが重要である.主に以下から学ぶ
目次
一、ファイル全体を読み取る
1.with方式
2.オープンモード
3.open()関数とwith open()の異同点
4.ファイルパス
5.ファイルの読み込みによく使われる3つの方法の違い
二、ファイルの書き込み
一、ファイル全体を読み取る
ファイルの読み込みには、次の2つの方法があります.
1.with方式
 
with open('   ') as file_object:
    contents = file_object.read()
    
#      
    for line in file_object:
        print (line)

2.オープンモード
Openメソッドは直接ファイルを開き、読み取り、with文を使用しないで、このメソッドは直接ファイルを読み取りますが、ファイルを閉じることを覚えておいてください.私たちは何を操作しているのか、目的は何なのかを知っています.もし私たちが単純にファイルの内容を読み取り、それを修正しないならば、open()メソッドを単純に使用して、第2のパラメータを使用しなくてもいいです.関数open()は、ファイルを開く名前のパラメータを受け入れます.
f = open('poem.txt')
    
    #       
contents = f.read()
print(contents)
 
    #    
for line in f:
    print(line.strip())
 
    #             
lines = file_object.readlines()
print(lines)
f.close()



3.open()関数とwith open()の異同点
  • with文は、ファイルにアクセスする必要がなくなりました.pythonにいつ閉じるべきかを自分で判断させ、自分で閉じるようにします.
  • オープン()メソッドを直接使用してファイルを開き、close()メソッドを自分で呼び出してファイルを閉じる.プログラムにバグがある場合、close()文が実行されないため、ファイルは閉じません.これは些細なことに見えますが、ファイルを適切に閉じていないと、データが失われたり、破損したりする可能性があります.プログラムでclose()を早すぎると、ファイルを使用する必要があるときに閉じられている(アクセスできない)ことがわかり、より多くのエラーが発生します.いずれの場合も、ファイルを閉じるタイミングを簡単に特定できるわけではありません.
  • open()の後にはread()メソッドとwrite()メソッドがあるオブジェクトがあります.

  • 4.ファイルパス
    相対パスと絶対パスは、ファイルの読み込み中にファイルパスに関連します.
    読み込まれたファイルが現在の実行ファイルが存在するディレクトリにある場合は、直接with open(「ファイル名」)を使用できますが、実行されたフォルダの下にない場合は、比較的複雑なパス読み取りに関連します.
    ファイルの組織によっては、プログラムファイルが属するディレクトリにないファイルを開く場合があります.例えば、プログラムファイルがフォルダPython_に格納されている可能性があります.ワークでフォルダPython_ワークにサブフォルダtext_が存在するfileは、プログラムファイル操作のテキストファイルを格納するために使用されます.フォルダPython_ワークにtext_を含めるfileファイルは、そのフォルダにあるファイルの名前だけをopen()に渡すことはできません.PythonからフォルダPythonのみに由来します.ワークでサブフォルダtext_を検索せずに検索ファイルで検索します.これには、相対パスを示す特定のファイルパスが必要です.
    with open('text_files\filename.txt') as file_object:

    なお、Windowsシステムでは、ファイルパスにスラッシュ(/)ではなく、スラッシュ()を使用します.
    相対パスが通じない場合は、次のように絶対パスを使用します.
    file_path = 'C:\users\ehmidhih\other_files\text_file\filename.txt'
    with open(file_path) as file_oject:

    5.ファイルの読み込みによく使われる3つの方法の違い
    ファイルを読み込むときにread()、readline()、readline()を混同することが多いので、この3つの方法をまとめます.
    #        ,   l.txt
    if you have a dream
    please try to do it
    because dream is lovely
  • read([size])メソッド:ファイルの現在位置からsizeバイトを読み出し、パラメータsizeがない場合は、ファイルが終了するまでの範囲が文字列オブジェクトであることを示す.
  • #read()  
    f = open("a.txt")
    lines = f.read()
    print(lines)
    print(type(lines))
    f.close()

    出力結果:
    if you have a dream
    please try to do it
    because dream is lovely
    
  • readline()メソッド:字面の意味から、このメソッドは1行のコンテンツを読み出すたびに、読み取り時のメモリ消費量が小さく、大きなファイルに適しており、文字列オブジェクトを返す.

  • 例:
    f = open('1.txt','r')
    result = list()
    for line in open('1.txt'):
        line = f.readline()
        print(line)
        result.append(line)
    print(result)
    f.close()

    出力結果:
    D:\anaconda\python.exe D:/pyworkspace/11/2018.12.17/lianxi0/0.2.py
    if you have a dream
    
    please try to do it
    
    because dream is lovely
    ['if you have a dream
    ', 'please try to do it
    ', 'because dream is lovely'] Process finished with exit code 0
  • readlines()メソッド:ファイル全体のすべての行を読み出し、Pythonのfor in結果で処理できます.各行は1つの要素として使用されますが、大きなファイルを読み込むとメモリが比較されます.

  • 実行コード:
    f = open('1.txt', 'r')                   #        
    result = list()
    for line in f.readlines():                          #      
        line = line.strip()                             #        
        if not len(line) or line.startswith('#'):       #           
            continue                                    #   ,     
        result.append(line)                             #  
    result.sort()                                       #    
    print(result)

    実行結果:
    D:\anaconda\python.exe D:/pyworkspace/11/2018.12.17/lianxi0/0.2.py
    ['because dream is lovely', 'if you have a dream', 'please try to do it']

    二、ファイルの書き込み
  • 書き込みモードwの特徴:(1)書くしかなく、読むことができない;(2)書くときは元の書類の内容をクリアします.(3)ファイルが存在しない場合、新しいファイルが作成される.
  • 書き込みモードw+の特徴:(1)書き込みも読み取りも可能;(2)書くときは元の書類の内容をクリアします.(3)ファイルが存在しない場合、新しいファイルが作成される.
  • 追加モードaの特徴:(1)読めない;(2)書くことができて、追加書きで、つまり元の内容の末尾に新しい内容を追加します;(3)ファイルが存在しない場合、新しいファイルを作成する.
  • a+モードの特徴を追加:(1)読み書き可能;(2)書くときは追加書き、すなわち元の内容の末尾に新しい内容を追加する.(3)ファイルが存在しない場合、新しいファイルを作成する.

  • 次に、読み書きモードについてまとめます.
    ファイルの読み書きの一般的なモード
    r
    読むしかない
    r+
    読み取り/書き込み可能で、存在しないファイルは作成されません.上部から書き込みます.前の場所の内容が上書きされます.
    w
    書き込みのみ、既存のファイル全体を上書き(乱用しないで)、存在しない場合に作成
    w+
    読み取り/書き込み可能、ファイルが存在する場合はファイル全体を上書き、存在しない場合は作成
    a
    書き込みのみ、ファイルの下部からコンテンツを追加して存在しない場合に作成
    a+
    読み取り/書き込み可能ファイルの上部から読み取り、ファイルの下部から追加内容が存在しない場合に作成
    簡単に例を挙げます.
    #W  
    filename = '1.txt'
    with open (filename,'w') as file_object :
        file_object.write("i love you 
    ") file_object.write("thank you
    ") #
    #a filename = '1.txt' with open (filename,'a') as file_object : file_object.write(" you are cute
    ") file_object.write("i love you
    ") #