文件操作要点

f, 变量f_obj,f_handler,f_h,fh,文件句柄。
open() python的内置函数(内部调用的是windows的系统命令),
1,打开文件,产生文件句柄。
2,对文件句柄进行操作。
3,关闭文件句柄。

# 读
# r 对于r模式 mode可以默认不写
# 1,全部读取
# f = open('文件操作1',encoding='utf-8',mode='r')
# content = f.read() #
# print(content)
# f.close()

# 2,read(n)
# f = open('文件操作1',encoding='utf-8',mode='r')
# content = f.read(10) # r 模式,按照字符读取。
# print(content)
# f.close()

# 3, 按行读取
# f = open('文件操作1',encoding='utf-8',mode='r')
# print(f.readline()) #
# print(f.readline()) #
# print(f.readline()) #

 4,按行读取,返回一个list
# f = open('文件操作1',encoding='utf-8',mode='r')
# content = f.readlines()
# print(content)
# f.close()
# rb


# 5,for 循环。
# f = open('文件操作1',encoding='utf-8',mode='r')
# for line in f:
# print(line.strip())
# f.close()

# rb 文件操作中凡是 带b字母,都是与非文字类文件相关的。

# r+ 读写:先读后追加。

 不读直接写会怎样:直接从开始覆盖



# w
# 没有文件,创建文件也要写。
# 有文件,先清空,后写入。
 wb
w+: 写读
# 追加

# a
# 没有文件,创建文件也要写。
# 有文件,直接在文件的最后面追加。
# ab  a+ a+b

# 其他方法:readale是否可读 ,writable是否可写,seek移动光标位置 tell 获取光标

 truncate 要在writable模式下进行截取。
# r+ a+ ..不能在w模式下使用,对原文件进行截取
# f = open('文件操作1',encoding='utf-8',mode='r+')
# print(f.truncate(6))
# f.close()

1,主动关闭文件句柄
# with open('文件操作2',encoding='utf-8') as f1:
# print(f1.read())
# 2,开启多个文件句柄。
# with open('文件操作2',encoding='utf-8') as f1,
# open('文件操作3',encoding='utf-8',mode='w') as f2:
# print(f1.read())
# f2.write('666666')


# 文件的改的操作

# 1,以读的模式打开原文件,产生一个文件句柄f1.
# 2,以写的模式创建一个新文件,产生一个文件句柄f2.
# 3,读取原文件内容,进行修改,并将修改后的写入新文件。
# 4,将原文件删除。
# 5,将新文件重命名成原文件。




#  low版
import os
with open('alex的深度剖析', encoding='utf-8') as f1,
open('alex的深度解析.bak',encoding='utf-8',mode='w') as f2:
old_content = f1.read()
new_content = old_content.replace('alex','SB')
f2.write(new_content)
os.remove('alex的深度剖析')
os.rename('alex的深度解析.bak', 'alex的深度剖析')
#

import os
with open('alex的深度剖析', encoding='utf-8') as f1,
open('alex的深度解析.bak',encoding='utf-8',mode='w') as f2:
for line in f1:
new_line = line.replace('SB','alex')
f2.write(new_line)
os.remove('alex的深度剖析')
os.rename('alex的深度解析.bak', 'alex的深度剖析')


原文地址:https://www.cnblogs.com/single82/p/9487433.html