首页 > 代码库 > 文件操作
文件操作
文件操作:
1、读取文件的相关参数:
(1)open() ##打开一个文件的函数
file = open(‘file1‘,encoding=‘utf8‘) //打开一个文件,指点编码为utf8,并赋值给一个变量
data = http://www.mamicode.com/file.read() // read读取文件内容,将内容赋值给一个变量>
结果:
(2)close() ##关闭一个文件的函数,例子同上
(3)read() ##读取文件内容,例子同上
(4)readable() ##判断文件是否可读
file = open(‘file1‘,encoding=‘utf8‘)
data = http://www.mamicode.com/file.readable() //判断文件是否可读>
结果:
(5)readline() ##每次只读取文件的一行内容
file = open(‘file1‘,encoding=‘utf8‘)
data = http://www.mamicode.com/file.readline() //读取一行并空行隔开,如果不想有空行,在输出内容的时候加一个end=‘‘>
结果:
print(data,end=‘‘) // 去掉空行
print(data1)
结果:
(6)readlines() ##把文件内容都读取出来,输出为列表的形式
file = open(‘file1‘,encoding=‘utf8‘)
data = http://www.mamicode.com/file.readlines() // 读取全部数据>
结果:
2、写文件的相关参数:
(1)w参数:
file = open(‘file1‘,‘w‘,encoding=‘utf8‘) // 加个w就表示在执行写操作
data = http://www.mamicode.com/file.read() //在写的过程中去读取文件,会报错,并且会清空整个文件>
结果:
ps:如果文件不存在,直接打开并关闭则会创建一个新的文件
(2)write() ##写操作,直接把要写的内容放在括号里
file = open(‘file1‘,‘w‘,encoding=‘utf8‘)
file.write(‘11111\n22222\n33333\n‘)
file.close()
结果:
(3)writable() ##判断一个文件是否可写
file = open(‘file1‘,‘w‘,encoding=‘utf8‘)
file.writable()
print(data)
file.close()
结果:
(4)writelines() ##用列表的形式写入内容
file = open(‘file1‘,‘w‘,encoding=‘utf8‘)
file.writelines([‘xyyyyyyp\n‘,‘dadasda\n‘])
file.close()
结果:
(5)a参数:
file = open(‘file1‘,‘a‘,encoding=‘utf8‘)
file.write(‘\n倒数第二行\n倒数第一行‘)
file.close()
结果:
修改文件的终极方法:
with open(‘file1‘,‘r‘,encoding=‘utf8‘) as file, open(‘file1‘,‘w‘,encoding=‘utf8‘) as file11:
data = http://www.mamicode.com/file.readlines()>
使用with的方法打开一个文件,不用在最后面加上一个file.close,以便操作过多忘记
3、其他参数:
(1)r+ 可读可写:
with open(‘file1‘,‘r+‘,encoding=‘utf8‘) as f:
print(f.read())
f.write(‘\nhello‘)
读结果:
写结果:
(2)w+ 可读可写:
with open(‘file1‘,‘w+‘,encoding=‘utf8‘) as f:
print(f.read())
f.write(‘hello‘)
读结果:
写结果:
(3)a+ 可读可写:
with open(‘file1‘,‘a+‘,encoding=‘utf8‘) as f:
print(f.read())
f.seek(2) //指定光标在什么位置
f.write(‘\tworld‘)
读结果和w+的一样
写结果:
(4)总结:
a、重要记住:r w a
b、r+和w+和a+的区别:
r+:是先读在写,写的时候会在文件后面追加内容
w+:是先把文件内容整个替换掉,然后在写入新的内容
a+:和r+的意思是一样的,这里在有seek()的情况下,不管光标在什么位置, 都是在文件的后面追加内容
案例1: 输入指定内容加载所需要信息
while True: //循环整个操作
test = input(‘please enter url: ‘).strip() //交互模式
l = [] //定义空列表
flag = False //标志位
with open(‘haproxy.conf‘,encoding=‘utf8‘) as f: //读取文件
for line in f: //循环遍历整个文件
if line.startswith(‘backend‘) and test in line: //对所需要的内容进行判断
flag = True //标志位判断
continue //退出当前操作
if line.startswith(‘backend‘) and flag: //对不需要的内容进行判断
break //退出整个操作
if flag:
l.append(line.strip()) //将筛选出来的内容加到列表里面
for i in l:
print(i)
案例2: 加载进度条,并显示百分比
import sys //加载sys系统模块
print("loadin...") //输出内容
for i in range(101): //取一个数字范围进行循环
s = "\r %d%% %s"%(i,"#"*i) //拼接字符串,\r表示光标永远在行首
sys.stdout.write(s) //输出变量s所对应的字符串
sys.stdout.flush() // 刷新输出的内容
import time //加载时间模块
time.sleep(0.3) //设置睡眠时间
文件操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。