参考:https://docs.python.org/3/library/functions.html?highlight=open#open
オープン機能とファイルタイプ、クラスファイルオープン関数自体が呼び出される:Pythonの二つの方法で読み取りと書き込みのファイルにします、 正常な動作のために、公式ではなく、ファイルのクラスのオープン機能を使用することをお勧めします。 #------------------------------------------------- ------------------------------ Open関数も、支持体には読み取りと書き込みのファイル操作、異なる識別子を使用して、読み書きモードは異なるを表し、 : X-書き込みモード、ファイルが既にそれはエラーになります存在する場合は、新しいファイルを作成します。 R読み取り専用モードでファイルを開きます。ポインタファイルは、ファイルの先頭に配置されます。これがデフォルトのモードです。 wは書き込み専用のファイルを開きます。ファイルが既に存在する場合は、ファイルを開いている最初から編集を開始、元のコンテンツが削除されます。ファイルが存在しない場合は、新しいファイルを作成します。 追記用のファイルを開きます。ファイルが既に存在する場合、ファイルポインタはファイルの末尾に配置されます。 言い換えれば、新しいコンテンツが既存のコンテンツの後に書き込まれます。ファイルが存在しない場合は、書き込み用に新しいファイルを作成します。 バイナリモードB。 +オープンファイルが更新される(読み取りおよび書き込み)。これは、読み取りと書き込みの両方のモードをサポートしています。
-------------------------------------------------- -------------------------------------------------- -----------------------------------------------
open
(ファイル、 モード= R '' 、 緩衝= -1、 エンコーディング=なし、 エラー=なし、 改行=なし、 closefd =真、 オープナ=なし)
-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------------------------
A、読む([サイズ])メソッド を読む([サイズ])メソッドはサイズパラメータは、それが文字列オブジェクトその範囲として、読み取るためにファイルの最後までを意味しない場合、ファイルのサイズは、現在の位置からのバイト読み出し、 読みます()改行を含むバイトの文字列に直接読み取ります。
f = open('C:\\Users\\del\\Desktop\\新建文本文档5.txt') s = f.read() f.close() print(type(s)) print(s)
执行结果:
<class 'str'>
111111111
中国
22222
美国
33333
55555555
俄罗斯
6666666
====================================================================================================================
二、readline()方法 从字面意思可以看出,该方法每次读出一行内容,所以,读取时占用内存小,比较适合大文件,该方法返回一个字符串对象。 readline() 读取整行,包括行结束符,并作为字符串返回
f = open('C:\\Users\\del\\Desktop\\新建文本文档5.txt') s = f.readline() f.close() print(type(s)) print(s)
执行结果:
<class 'str'>
111111111
===============================================================================================
三、readlines()方法 读取整个文件所有行,保存在一个列表(list)变量中,每行作为一个元素,但读取大文件会比较占内存 特点:一次性读取整个文件;自动将文件内容分析成一个行的列表。 readlines()读取所有行然后把它们作为一个字符串列表返回。
f = open('C:\\Users\\del\\Desktop\\新建文本文档5.txt') s = f.readlines() f.close() print(type(s)) print(s)
执行结果:
<class 'list'>
['111111111\n', '中国\n', '22222\n', '美国\n', '33333\n', '\n', '55555555\n', '俄罗斯\n', '6666666\n']
===========================================================================================================
切片操作:
f = open('C:\\Users\\del\\Desktop\\新建文本文档5.txt') s = f.readlines() f.close() print(type(s)) print(s) for line in s: print(line[:-1]) #<class 'str'>
执行结果:
<class 'list'>
['111111111\n', '中国\n', '22222\n', '美国\n', '33333\n', '\n', '55555555\n', '俄罗斯\n', '6666666\n']
111111111
中国
22222
美国
33333
55555555
俄罗斯
6666666
=================================================================================
切片,并存入列表中
f = open('C:\\Users\\del\\Desktop\\新建文本文档5.txt') s = f.readlines() f.close() print(type(s)) print(s) users = [] for line in s: print(line[:-1]) #<class 'str'> users.append(line[:-1]) print(users) print(users[0]) print(users[1]) print(users[2]) print(users[5]) print(type(users[5])) print(len(users[5])) if users[5] == '': print('空')
执行结果:
<class 'list'>
['111111111\n', '中国\n', '22222\n', '美国\n', '33333\n', '\n', '55555555\n', '俄罗斯\n', '6666666\n']
111111111
中国
22222
美国
33333
55555555
俄罗斯
6666666
['111111111', '中国', '22222', '美国', '33333', '', '55555555', '俄罗斯', '6666666']
111111111
中国
22222
<class 'str'>
0
空