Pythonでのファイルの読み書きを詳しく解説

零到壹度
リリース: 2018-04-04 17:59:29
オリジナル
2308 人が閲覧しました


この記事では主にPythonでのファイルの読み書きの詳細な説明を紹介しています。編集者が非常に優れていると思ったので、参考として共有します。エディターをフォローして一緒に見てみましょう

ファイルからデータを読み取ります

ファイル全体を読み取ります

ディレクトリ テキスト ファイル、内部のデータは次のとおりです:

3.1415926535
8979323846
2643383279
ログイン後にコピー
with open('pi_digits.txt') as f: # 默认模式为‘r’,只读模式
    contents = f.read() # 读取文件全部内容
    print contents # 输出时在最后会多出一行(read()函数到达文件末会返回一个空字符,显示出空字符就是一个空行)
    print '------------'
    print  contents.rstrip() # rstrip()函数用于删除字符串末的空白
ログイン後にコピー
3.1415926535
8979323846
2643383279

------------
3.1415926535
8979323846
2643383279
ログイン後にコピー

1 行ずつ読み取る

ループを通じてデータを 1 行ずつ読み取ることができます:

with open('pi_digits.txt') as f:    
    for line1 in f:    
        print line1 # 每行末尾会有一个换行符
    print '------------'
    for line2 in f:    
        print line2.rstrip() # 此时文件已经读完,line2指向文本末尾,因此不会有输出
ログイン後にコピー
3.1415926535

8979323846

2643383279

------------
ログイン後にコピー

ファイルを読み取るとき、読み取り位置を記録するポインターを持つことと同等です。 、データが読み取られます。このポインターはその場所を指します。データの読み取りを続ける場合は、この位置から読み取りを続けるため、上記のコードの 2 番目のループの出力は空になります。上記のコードを次のように少し変更します。

with open('pi_digits.txt') as f:  
  for line1 in f:    
      print line1    
  print '------------'
  
  with open('pi_digits.txt') as f: # 需要重新打开文本进行读取
    for line2 in f:     
       print line2.rstrip() # 删除字符串末尾的空白
ログイン後にコピー
3.1415926535

8979323846

2643383279

------------
3.1415926535
8979323846
2643383279
ログイン後にコピー

上記のコードは、初めてファイルを読み取った後にファイルを閉じ、再度読み取るためにファイルを開くことと同じです。次のように、readline() 関数を使用してデータを 1 行ずつ読み取ることもできます:

with open('pi_digits.txt') as f: 
    # readline()每一次读取一行数据,并指向该行末尾
    line1 = f.readline() # 读取第一行数据(此时已经指向第一行末尾)
    line2 = f.readline() # 从上一次读取末尾开始读取(第二行)

    print line1.rstrip()    print line2.rstrip()
ログイン後にコピー
3.1415926535
8979323846
ログイン後にコピー

場合によっては、すべてのデータを一度に読み取り、その後の操作を容易にするために個別に保存したい場合があります。上記のループですが、Python が提供するより簡単なメソッドは readlines() です:

with open('pi_digits.txt') as f: 
    lines = f.readlines() # 读取文本中所有内容,并保存在一个列表中,列表中每一个元素对应一行数据
print lines # 每一行数据都包含了换行符

print '------------'
for line in lines:  
  print line.rstrip()   
print '------------
'pi_str = '' # 初始化为空字符
for line in lines:
    pi_str += line.rstrip() #字符串连接
print pi_str
ログイン後にコピー
['3.1415926535\n', '8979323846\n', '2643383279\n']
------------
3.1415926535
8979323846
2643383279
------------
3.141592653589793238462643383279
ログイン後にコピー

データをファイルに書き込む

データを書き込むにはいくつかの異なるモードがあります。最も一般的に使用されるのは w' と 'a' で、それぞれ消去を意味します。元のデータにデータを書き込んだ後:

filename = 'write_data.txt'
with open(filename,'w') as f: # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
    f.write("I am Meringue.\n")
    f.write("I am now studying in NJTECH.\n")
ログイン後にコピー

現在のパスに「write_data.txt」というテキスト ファイルが作成され、そのファイルにデータが書き込まれます。次のとおりです:

I am Meringue.
I am now studying in NJTECH.
ログイン後にコピー

次に、ファイルに新しいデータを追加し続けます。

以上がPythonでのファイルの読み書きを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!