首页 > 其他分享 >文件的操作方法

文件的操作方法

时间:2022-10-09 16:56:13浏览次数:57  
标签:文件 encoding 操作方法 路径 模式 utf8 open

今日内容总结

文件操作

1.文件的概念
    就是操作系统暴露给用户操作硬盘的快捷方式
    eg:双击一个文件 其实就是从硬盘将数据加载到内存
        Ctrl+s保存文件 其实是将内存中的数据刷到硬盘保存
 2.代码打开文件的两种方式
    方式1: f = open(文件路径,读写模式,encoding='utf8')
          f.close()
    方式2:
        with open('a.txt','r',encoding='utf8') as f1:
            with子代码块
    ps:with 上下文管理好处在于子代码运行结束自动调用close方法关闭资源
"""
open方法的第一个参数是文件路径 并且撬棍跟一些字母的组合会产生特殊的含义导致路径查找混乱
为了解决该问题可以在字符串的路径前面加字母r
    D:\a\n\t
    r'D:\a\n\t'
以后涉及到路径的编写 推荐加上r

with支持一次性打开多个文件
   with open() as f1, open()as f2,open as f3:
       子代码
"""

文件读写模式

'r'   只读模式:只能读不能写
    1.文件路径不存在会直接报错
    with open(r'a.txt','r',encoding='utf8') as f:
        print(f.read())
     2.文件路径存在:正常读取文件内容
        with open(r'a.txt','r',encoding='utf8')as f:
            print(f.read())
'w' 只写模式,只能写不能看
1.文件路径不存在,自动在该路径上创建目标文件
with open(r'b.txt','w'encoding='utf8') as f:
    pass
2.文件路径存在:先清空文件内容之后再写入
    with open(r'a.txt', 'w', encoding='utf8') as f:
        f.write('假期综合征 赶紧要调整\n')
        f.write ('假期综合征 赶紧要调整\n')
        f.write ('假期综合征 赶紧要调整\n')
 """
 强调:换行符需要自己添加 并且在后续数据读取比对的时候也一定要注意它的存在
 """
'a'  只追加模式:文件末尾添加数据
    1.文件路径不存在:自动创建
    with open(r'a.txt', 'a', encoding='utf8')as f:
        pass
    2.文件路径存在:自动在末尾等待追加内容
        with open(r'a.txt','a',encoding='utf8') as f:
            f.write('放假七天和上班七天的感觉是不一样的')
  """
  当我们在编写代码的时候 有些部分不知道写什么具体代码 但是也不能空着不写
  这时候我们可以使用关键字
      pass
  只补全语法不执行功能  本身没有任何的含义
  """

文件的操作模式

t 文本模式
  默认的模式 我们上面所写的r w a其实全称是 rt wt at
  1.只能操作文本文件
  2.读写都是以字符为单位
  3.需要指定encoding参数 如果不知道则会采用计算机默认的编码

b 二进制模式(bytes模式)
 不是默认的模式 需要自己指定 rb wb ab
    1.可以操作任意类型的文件
    2.读写都是以bytes为单位
    3.不需要指定encoding参数 因为他们都说二进制模式了 不需要编码
    
    二进制模式与文本模式针对文件路径是否存在的情况下 规律是一样的!!!

文件诸多方法

1.read()
    一次性读取文件内容 并且光标停留在文件末尾 继续读取则没有内容
    并且当问价内容比较多的时候 该方法还可能造成计算机内存溢出
    括号内还可以填写数字 在文本模式下 标识读取几个字符
2.for循环
  一行行读取文件内容 避免内存溢出现象的产生
3.readline()
 一次只读一行内容
4.readlines()
  一次性读取文件内容 会按照数组织成列表的一个个数据值
5.readable()
  判断文件是否具备读数据的能力
6.write()
  写入数据
7.writeable()
判断文件是否具备写数据能力
8.writelines()
接收一个列表 一次性将列表中所有的数据值写入
9.flush()
 讲内存中文件数据立刻刷到硬盘 等价于ctrl + s

文件光标的移动

with open(r'a.txt', 'rb') as f:
    print(f.read())
    f.seek(0.0)
    print(f.read())
    f.seek(0.0)
    print(f.read())
    print(f.read(2).decode('utf8'))
    f.seek(-1,2)
    print(f.tell())  #返回光标距离文件开头产生的字节数
    """
    seek(offset,whence)
       offset是位移量 以字节为单位
       whence是模式 0 1 2
       0是基于文件开头
            文本和二进制模式都可以使用
       1是基于当前位置
            只有二进制模式可以使用
       2是基于文件末尾
            只有二进制可以使用
    """
    print(f.read(3)).decode('utf8')

标签:文件,encoding,操作方法,路径,模式,utf8,open
From: https://www.cnblogs.com/wwssadadbaba/p/16772742.html

相关文章

  • rust 逐行读取文本文件
    usestd::fs::File;usestd::io::{BufRead,BufReader};fnmain(){//要打开的文件名letfilename="src/main.rs";//以只读模式打开文件letfile=File:......
  • 文件操作基础
    目录文件操作基础文件操作代码打开文件的两种方式文件读写文件操作模式文件的方法文件内光标的移动文件光标实战作业文件操作基础文件操作文件是操作系统暴露给用户操作......
  • docker 下nginx 实现文件下载
     1、新建目录存放文件 2、将目录挂载到容器,新增配置如下  3、nginx配置文件新增配置location~*(.*.apk){#代理后缀为apk的文件add_h......
  • 显示文件名的后缀名(保姆级)
    1、随便打开一个文件夹  上方  工具->文件夹选项->(上方)查看->(找到) 隐藏已知文件类型的扩展名 把√去掉点确认就好了     ......
  • centos7 编译cpp报错 /usr/include/c++/4.8.2/iostream:38:28: 致命错误:bits/c++confi
    解决方法:升级gcc编译器 Centos7升级gcc安装centos-release-scl安装devtoolset 注意,如果想安装7.版本的,就改成devtoolset-7-gcc,以此类推sudoyuminstallcentos-re......
  • Linux文件操作命令touch
    touchtouch[filename]创建文件,参数可以跟多个如果要创建50个有规律的文件,例如text1-text50利用参数扩展touchtest{1..50}touchtest{a..e}touchtest{a..e}_{......
  • linux磁盘已满,查看哪个文件占用多
    1.使用df-h查看磁盘空间占用情况2.使用sudodu-s-h/*|sort-nr命令查看那个目录占用空间大3.然后那个目录占用多再通过sudodu-s-h/var/*|sort-nr一层层......
  • shell获取文件名和文件目录-basename和dirname
    转载学习,from:https://blog.csdn.net/d1240673769/article/details/122072963我们有时候需要获取某个文件路径的文件名或者文件所在目录名,如:/usr/local/nginx/nginx.conf......
  • Python FTP 下载文件 简单示例
    简单的FTP下载,不加任何异常判断。<spanstyle="font-size:14px;">importosfromftplibimportFTPftp_addr='10.10.0.1'f=FTP(ftp_addr)f.login('anonymous')f.cwd("apk......
  • Python HTTP Basic 认证 + 下载文件到本地
    简单代码示例<spanstyle="font-size:18px;">importurllib2frombase64importencodestringurl='http://www.xxx.com/xxxx.csv'user='aaa'passwd='bbbbb'req=......