文件操作的基本流程

1、读模式

f.read()
f.readable()#这个文件是否可读,返回布尔值;
f.readline(“读模式”)#读取第一行;
f.readlines(“读模式”)#读取所有内容 以字符串方式存储在列表内;
f = open('小重山','r',encoding='utf-8') #第一个参数是文件位置,第二个参数是读模式,第三个参数是定义编码
data = f.read()  #括号里是有参数的,5代表要取5个字符,默认是读取所有。
print(data)
f.close() #关闭

2、写模式

f.write('写模式')#注意 写之前会清空原文本文件,然后进行写入! 若没有文件则会新创建一个文件进行写入;
f.write("写模式1 写模式2 写模式3 写模式4 ")#换行写入;
f.writelines(["写模式1 写模式2 写模式3 写模式4 "])#该模式要传入的数据类型必须是列表;
f.writable()#这个文件是否可写,返回布尔值;

f = open('小重山','w',encoding='utf-8') #第一个参数是文件位置,第二个参数是写模式,第三个参数是定义编码
data = f.write('写模式')
print(data)
f.close()
#注意 写之前会清空原文本文件,然后进行写入! 若没有文件则会新创建一个文件进行写入

f = open('name','w',encoding='utf-8') #第一个参数是文件位置,第二个参数是写模式,第三个参数是定义编码
data = f.write("写模式1 写模式2 写模式3 写模式4 ")
print(data)
f.close()
写模式1
写模式2
写模式3
写模式4
f.writelines(["写模式1
写模式2
写模式3
写模式4
"])#该模式要传入的数据类型必须是列表
f = open('小重山','a',encoding='utf-8') # a 代表 append 追加 不会清空原文件
data = f.write('写模式')
print(data)
f.close()

3、# r+ , w+ , a+模式

with:

同时管理多个文件对象

1 with open('log1','r') as f_read, open('log2','w') as f_write:
2     for lien in f_read:
3         f_write.write(lien)

具体的操作方法:

1、f.readline()  #读取第一行


f = open('小重山','r',encoding='utf-8') #第一个参数是文件位置,第二个参数是写模式,第三个参数是定义编码
data = f.readline()
print(data)
f.close()

2、data = f.readliens()  # 读取所有内容 以字符串方式存储在列表内

f = open('小重山','r',encoding='utf-8') #第一个参数是文件位置,第二个参数是写模式,第三个参数是定义编码
#data = f.readline()
data = f.readlines()
print(data)
f.close()
[
'写模式哈哈写模式 ', '哈哈 ', '发的 ']

3、readable()#这个文件是否可读,返回布尔值;

f=open("name","r",encoding="utf-8")
print(f.readable())
f.close()

True

循环 f.readliens() 取出的列表,并指定第二行添加字符串'oooo' 
(不常用) 若文件较大,占内存

f = open('小重山','r',encoding='utf-8') #第一个参数是文件位置,第二个参数是写模式,第三个参数是定义编码
data = f.readlines()
number = 0
for i in data:
    number += 1
    if number == 2:
        i = ''.join([i.strip() , 'oooo'])
    print(i.strip())
f.close()

写模式哈哈写模式
哈哈oooo
发的

 常用方法:

 1 f = open('小重山','r',encoding='utf-8') #第一个参数是文件位置,第二个参数是写模式,第三个参数是定义编码
 2 number = 0
 3 for i in f:   #这里for内部将f做成一个迭代器,用一行取一行,用完清空,不占内存
 4     number += 1
 5     if number == 2:
 6         i = ''.join([i.strip() , 'oooo'])
 7     print(i.strip())
 8 f.close()
 9 
10 
11 print(f.tell(3))  #打印光标的位置 对于英文字符就占一个,中文字符占3个;
12 
13 print(f.seek(3))  #调整光标位置的
14 
15 
16 f.flush() #把缓存里的数据更新到磁盘上(防止程序崩溃数据丢失)
17 
18 
19 >>> f = open('hello','w')
20 >>> f.write('alex is 35 ')11
21 >>> f.write('hello world')11
22 >>> f.flush() 
23 alex is 35 hello world
24 
25 #进度条效果展示
26 
27 import sys,time
28 
29 for i in range(30):  #第一种方法
30     sys.stdout.write('=')
31     sys.stdout.flush()
32     time.sleep(0.1)
33 
34 
35 for i in range(30):  #第二种方法
36     print('=',end='',flush=True)
37     time.sleep(0.1)
f.truncate()# 截取字符

f = open('小重山','a',encoding='utf-8')
f.write('asfzxc')
f.truncate(5)
 
原文地址:https://www.cnblogs.com/songzhixue/p/9120306.html