首页 > 其他分享 >文件相关操作

文件相关操作

时间:2023-05-24 16:24:26浏览次数:47  
标签:文件 encoding utf8 操作 print 相关 txt open

文件的基本操作

  文件的基本操作分为三步骤:1.打开文件

               2.操作文件

                  3.关闭文件

1. 打开文件

  关键字: open

f = open(r'a.txt', 'r',  encoding='utf8')
# f = open(r'a.txt', 'r', encoding='utf-8')
print(f)   # 操作系统打开的文件

# 当encoding=‘utf8’ 报错时,就换成 encoding=‘utf-8’。

2. 操作文件: 读、写

res = f.read()
print(res)

# 关闭文件:释放资源
f.close


# 方式2:
# with上下文管理器
with open('a.txt', 'r' ,encoding='utf8')  as f:
      print(f.read())

文件的读写模式

  r:read(读)

  w:write(写)

  a:append(追加写)

# 读模式
# 1. 路径不存在,直接保存
with open('a.txt', 'r', encoding='utf8') as f:
    pass


#2. 路径存在
with open('a.txt', 'r', encoding='utf8') as f:
      print(f.read())

# 写模式
# 1. 路径不存在,会自动创建出文件
with open('a.txt', 'w', encoding='utf8') as f:
      pass

'''
我们真正的代码以后是运行在Linux系统里面的
'''

# 2. 路径存在
# 把文件内的原本数据清除掉,重新写入,覆盖之前所有的数据
# w模式很危险
with open('a.txt', 'w', encoding='utf8') as f:
      f.write(str())   # 写文件的数据类型必须是字符串和字节类型,其他类型都不能直接写入
# 3. 追加模式
# 3.1 路径不存在,会自动创建文件出来
with open('a.txt', 'a', encoding='utf8') as f1:
      f1.write('hello baby!')
      pass

# 3.2 路径存在,在文件的原来数据后面继续追加新的内容
with open('a.txt', 'a', encoding='utf8') as f1:
      f1.write('hello baby!\n')

文件的操作方法

1. 读系列

# 1.读系列
with open('a.txt', 'r', encoding='utf8') as f:
      print(f.read())
# 一次读取文件的一行内容,一行一行的读取
       print(f.readline())   # hello worldhello baby!hello baby!
       print(f.readlines())   # ['hello world\n', 'hello baby!\n','hello baby!\n', 'hello baby!\n']  \n 换行符也算是字符
# 判断文件是否可读
       print(f.readable())

2. 写系列

# 2.写系列
with open('a.txt', 'w', encoding='uft8') as f:
      f.write('helllo baby')
      f.write(str(123))   # 只能写字符串
      print(f.writebale())   # True
      print(f.readable())    # False
      f.writelines(['hello\n, 'world\n', 'kevin' ,'jack'])

文件的读操作优化

with open('a.txt', 'r' ,encoding='uft8') as f:
    print(f.read())   # 一次性把文件中的内容读取完毕
   read 方法是一次性读取文件的所有内容,所以,当文件内容非常大的时候,有可能会造成内存溢出,我们是不允许内存溢出的情况出现,但是当文件内容非常小的时候,无所谓了,针对上述出现的问题,该如何解决呢?

  变量f是支持for循环的

for line in f:
     print(line)   # for循环就是一行一行的读取内容的

'''

所以,以后读文件的时候,如果觉得文件很大,我们就是for循环一行一行的读取

'''

文件操作模式

t模式:text文本

  r >>>>  rt

       w >>>> wt

  a >>>> at

'''

  1. 它是以字符串为基本单位

  2.只能操作字符串形式

  3.encoding参数必须写

'''

b 模式: bytes二进制模式

  r >>>>  rb

  w >>>> wb

  a >>>> ab

'''

  1.b 不能省略,必须写rb

  2.可以操作任意的数据类型:视频、音频、图片等都可以

  3. encoding参数一定不能写

  4. 数据以字节为单位

'''

 

标签:文件,encoding,utf8,操作,print,相关,txt,open
From: https://www.cnblogs.com/chenr-2829/p/17428648.html

相关文章

  • Python文件读写、StringIO和BytesIO
    StringIO和BytesIO很多时候,数据读写不一定是文件,也可以在内存中读写。StringIO就是在内存中读写str。要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可:>>>fromioimportStringIO>>>f=StringIO()>>>f.write('hello')5>>>f.write('')......
  • Linux_提高效率的快捷操作
    history&fclinux历史机制对命令行中输入的命令进行编号并依此保存,以维护命令历史。登录会话期间输入的命令保存在shell内存中,若终止命令则添加至历史文件历史命令缓冲区-a:将缓存在内存的历史命令写入历史命令文件中【~/.bash_history】-c:清空当前内存里的历史命......
  • 用命令行工具运行java文件
     1、若java文件有packagepackagequitStu;publicclassMain{publicstaticvoidmain(String[]args){for(Stringstr:args){if(str.equals("11")){System.out.println("-v1.0");brea......
  • 单文件组件开发文档
    在大多数启用了构建工具的Vue项目中,我们可以使用一种类似HTML格式的文件来书写Vue组件,它被称为单文件组件(也被称为*.vue文件,英文Single-FileComponents,缩写为SFC)。顾名思义,Vue的单文件组件会将一个组件的逻辑(JavaScript),模板(HTML)和样式(CSS)封装在同一个文......
  • 【操作系统入门到成神系列 六】什么软中断
    ......
  • Python自动化办公对每个子文件夹的Excel表加个表头(Excel不同名且有xls文件)
    大家好,我是皮皮。一、前言上一篇文章,我们抛出了一个问题,这篇文章来进行解答。如果针对子文件夹下不同的Excel表名,而且Excel表格类型包括了.xls和.xlsx应该如何处理?要求一步到位。二、实现过程其实这里依靠【ChatGPT】给的答案,只需要修改其中一行代码就可以搞定了,如下所示:imp......
  • k8s中 fpm 和 nginx 的文件共享问题
    目录引言docker镜像构建哲学为什么一定要共享文件代码的迭代更新问题引言初看这是一个值得记录的问题吗?或者说这算是一个问题吗?各种数据卷挂载,然后一顿操作不就完成了么?我也是这么认为的。看人讨论fpm与nginx的文件共享问题。想到自己当初也遇到了类似的困惑,记得当......
  • 直播app开发,基于van-uploader封装的文件上传图片压缩组件
    直播app开发,基于van-uploader封装的文件上传图片压缩组件1、调用<template>  <div>    <compress-uploaderv-model="fileList":compressSwitch="true":quality="0.5":maxCount="3"/>  </div></template> <......
  • 中亿丰单文件组件开发文档
    在大多数启用了构建工具的Vue项目中,我们可以使用一种类似HTML格式的文件来书写Vue组件,它被称为单文件组件(也被称为*.vue文件,英文Single-FileComponents,缩写为SFC)。顾名思义,Vue的单文件组件会将一个组件的逻辑(JavaScript),模板(HTML)和样式(CSS)封装在同一个文......
  • 数据库相关操作
    1. 创建数据库  7371.1 基本语法1. CHARACTER SET:指定数据库采用的字符集,如果不指定字符集,默认utf82. COLLATE:指定数据库字符集的校对规则(常用的utf8_ bin[区分大小写]、utf8 general ci[不区分大小写]注意默认是utf8 general _ci) [举例说明database.sql文件]1.2......