文件操作

Posted 花豆豆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件操作相关的知识,希望对你有一定的参考价值。

文件操作:

1、读取文件的相关参数:

1open()  ##打开一个文件的函数

 file = open(\'file1\',encoding=\'utf8\') //打开一个文件,指点编码为utf8,并赋值给一个变量
 data = file.read() // read读取文件内容,将内容赋值给一个变量
 print(data)	   //输出文件内容
 file.close()   //关闭文件

结果:

 

2close() ##关闭一个文件的函数,例子同上

3read()  ##读取文件内容,例子同上

4readable()  ##判断文件是否可读

file = open(\'file1\',encoding=\'utf8\')
data  = file.readable()   //判断文件是否可读
print(data)
file.close() 

结果:

 

5readline()  ##每次只读取文件的一行内容

file = open(\'file1\',encoding=\'utf8\')
data = file.readline()  //读取一行并空行隔开,如果不想有空行,在输出内容的时候加一个end=\'\'
data1 = file.readline() //读取一行
print(data)
print(data1)
file.close() 

结果:

print(data,end=\'\')  // 去掉空行
print(data1)

结果:

 

6readlines()  ##把文件内容都读取出来,输出为列表的形式

file = open(\'file1\',encoding=\'utf8\')
data = file.readlines() // 读取全部数据
print(data)
file.close() 

结果:

2、写文件的相关参数:

1w参数:

file = open(\'file1\',\'w\',encoding=\'utf8\') // 加个w就表示在执行写操作
data = file.read()  //在写的过程中去读取文件,会报错,并且会清空整个文件
file.close()

 结果:

 

ps:如果文件不存在,直接打开并关闭则会创建一个新的文件

2write() ##写操作,直接把要写的内容放在括号里

file = open(\'file1\',\'w\',encoding=\'utf8\')
file.write(\'11111\\n22222\\n33333\\n\')
file.close() 

 结果:

   

3writable()  ##判断一个文件是否可写

file = open(\'file1\',\'w\',encoding=\'utf8\')
file.writable()  
print(data)
file.close()

 结果:

4writelines() ##用列表的形式写入内容

file = open(\'file1\',\'w\',encoding=\'utf8\')
file.writelines([\'xyyyyyyp\\n\',\'dadasda\\n\'])
file.close()

结果:

5a参数:

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 = file.readlines()
    file11.write(\'呦呦呦 切克闹\')

使用with的方法打开一个文件,不用在最后面加上一个file.close,以便操作过多忘记

3、其他参数:

(1)r+  可读可写:

with open(\'file1\',\'r+\',encoding=\'utf8\') as f:
    print(f.read())
    f.write(\'\\nhello\')

读结果:

 

写结果:

 

2w+  可读可写:

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

br+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)   //设置睡眠时间

  

 

以上是关于文件操作的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode 如何操作用户自定义代码片段(快捷键)

代码片段 - Golang 实现集合操作

Apollo Codegen 没有找到生成代码的操作或片段

VSCode自定义代码片段——.vue文件的模板

操作栏标签片段中的片段?