ファイル操作のPythonの基本的なデータ構造

次のように単語のプロセスとファイルの動作は次のとおりです。

1、ファイルを探し、ダブルクリックして開きます

図2に示すように、読み出しまたは改変

3.保存して閉じます

程度であるのpythonファイルと操作:

1 F =オープン(ファイル名)   ファイルを開く
2 f.write(" 私は野生のプログラマーだ"#の書き込み
3 f.read()  読む
4 f.close() 保存して閉じます

しかし、異なるオペレーティング・ワード文書で一つのこと人間の肉、ワード文書がある限りそれはつまり読み取ることができるように、彼らは変更することができる開かれました。Pythonのが、より多くの異常、のみ読み取ることができ、作成、開いているドキュメント内の3つのモードのいずれかを追加し、つまり、読み取りと書き込みができません。

1、読み取り専用モード(読み取り専用モードを読み取ります

 

1 F =オープン(小さな山R&LT 、エンコード= UTF8 #の読み出しモードのみ書き込むことができるモード、書き込み専用
2データ=(8)に達し、f.read 値は、文字の数の取り出し英国でのpython3の文字と文字がこんにちは学習文字です
。3  印刷(データ)
 。4 f.close()

 

図2に示すように、書き込み専用モード(書き込みモードのみを同時に書き込むことができるアウト空元のテキスト内容でオブジェクトを作成します

 

1 F =オープン(小さな山2 W 、エンコード= UTF8 #1 書込みモードのみオリジナルコンテンツのテキストのオブジェクトを作成すると同時に書き込むことができるが出て空に
2                                            ファイル名が新規作成しないようにした場合ファイル
。3  印刷(()f.fileno)  操作ハンドルには、基本的にオブジェクトです
。4 f.write(' Hello Worldの\ N- ' 。5 f.write(' Xiaohu ' 。6 f.close()  は、ファイルを閉じます

 

3、モードを追加(アペンドモードコンテンツ内のファイルに新しいコンテンツを追加します

 

。1 F =オープン(' 小さな山2 '' A '、エンコード= ' UTF-8 '''ファイルの追加モードの内容で新しいコンテンツを追加し
2 f.write(' \ nHello世界\ N- ' 。3 F .WRITE(' アレックスは' 。4 time.sleep(5 。5  f.close()は、ファイルをクローズ#

 

図4に示すように、混合モード

(1) R&LT +(読み書き)

1 F =オープン(' 小さな山'' R&LT + '、エンコード= ' UTF8 ' 2  プリント(f.readline())
 3。 f.write(' ' 4。 ための I におけるF:
 5      プリント(i.strip ()) 読み出し行ずつ
6 f.close()を

 

(2)+(W ライト-リードモード、 W +空の第一

 

1 F =オープン(' 小さな山'' W + '、エンコーディング= ' UTF8 ' 2  プリント(f.readline()) コンテンツを空にするため、W +を読み取ることができませんでした
。3 f.write(' ' 。4  プリント( f.tell()) またはコンテンツの入力後にカーソルが、コンテンツが遅れているわけではないので、コンテンツを再生することはできません
。5 f.seek(0) は、コンソールで表示するために、カーソルを移動させる必要がある
。6   I F:
 7      印刷(i.strip()) カーソルの移動後は、内容を見ることができます
8。 f.closeを()

 

(3)A +(追加の読み出しモード)

 

1 f = open('小重山', 'a+', encoding='utf8')
2 print(f.tell()) # 在文本内容末尾
3 print(f.readline()) # 此时控制台是没有显示任何内容的,因为光标在'a+'模式中在内容的末尾
4 f.close()

 

 

用法

1、文件操作之flush及遍历文件最优算法(1)

 

 1 print(f.readline())  # 输出文件第一行的内容 换行符也打印了
 2 print(f.readline())  # 输出文件下一行的内容
 3 print(f.readlines())   # 使用列表将一行一行的内容输出 换行符\n也输出
 4 number = 0
 5 a = f.readlines()  # 使用列表将一行一行的内容存起来
 6 for i in a:  # 使用for循环来将列表内容输出
 7     number += 1
 8     if number == 2:
 9         # print(i.strip(), 'xiaohu')  # 加strip()方法去掉换行
10         i = '*****'.join([i.strip(), 'iiii']) # 字符串拼接用 join 不要用 +
11     print(i.strip())
12 f.close()  # 关闭文件

 

2、文件操作之flush及遍历文件最优算法(2)

 1 f = open('小重山2', 'a', encoding='utf8')
 2 
 3 for i in range(30):
 4     sys.stdout.write("*") # stdout 是一个终端的输出显示
 5     sys.stdout.flush()
 6     time.sleep(0.2)  # 每隔0.2秒显示
 7 
 8 for i in range(30):
 9     print('*',end=' ',flush=True)
10     time.sleep(0.2)  # 每隔0.2秒显示
11 
12 f.truncate(5) # 在光标30处后面全删 'w'中全部格式化 ‘a’中正常截断
13 f.write('Hello world')
14 f.truncate(5)
15 f.close()

3、在某一行末尾添加字符串添加

 

1 f = open('小重山', 'r+', encoding='utf8')
2 number=0
3 for line in f:
4     number+=1
5     if number==6:
6         line=''.join([line.strip(),'xiaohu'])
7         # f.write('xiaohu') # 写永远是在最后一行写 所以直接write()行不通!!!!!!! 因为存储机制决定了无法修改
8     print(line.strip())
9 f.close()

 

4、将一个文件里的内容写到另一个文件里,并且修改某一行

 

 1 f_read=open('小重山','r',encoding='utf-8')
 2 f_write = open('小重山2','w',encoding='utf-8')
 3 number = 0
 4 for line in f_read:
 5     number+=1
 6     if number==5:
 7         print(line)
 8         line='hello 岳飞\n' # 将这一行内容进行修改
 9         print(line)
10     f_write.write(line) # 将一个文件里的内容一行一行写到另一个文件里
11 f_read.close()
12 f_write.close()

 

5、文件操作之with方法

 

with open('log','r') as f: # 只要退出with代码块,自动帮你关,相当于f.close(),
    f.readline()
    f.read()

with open('log1','r',encoding='utf-8') as f_read,open('log2','w',encoding='utf-8') as f_write: # 可以同时管理多个文件
                                                             # 相当于f_read=open('小重山','r',encoding='utf-8')
                                                             # f_write = open('小重山2','w',encoding='utf-8')
    for line in f_read:
        ....

 

  

おすすめ

転載: www.cnblogs.com/wyh-study/p/11324097.html