第六章、Python文件操作

第六章、Python文件操作

Python可以对文件进行查看、创建等功能,可以对文件内容进行添加、修改、删除,且所使用到的函数在Python3.5.x为open,在Python2.7.x同时支持fileopen,但是在3.5.x系列移除了file函数。

一、Python文件打开方式

  
  文件句柄 = open(‘文件路径‘,‘打开模式‘)
  Nginx_Conf = open(‘nginx.conf‘,‘r‘,encoding=‘utf-8‘)

Ps:文件句柄相当于于变量名,文件路径可以写为绝对路径也可以写为相对路径。

二、Python打开文件的模式

基本的模式

模式 说明 注意事项
r 只读模式 文件必须存在
w 只写模式 文件不存在则创建文件,文件存在则清空文件内容
x 只写模式 文件不可读,文件不存在则创建,存在则报错
a 追加模式 文件不存在创建文件,文件存在则在文件末尾添加内容

+的模式

模式 说明
r+ 读写
w+ 写读
x+ 写读
a+ 写读

b的模式

模式 说明
rb 二进制读模式
wb 二进制写模式
xb 二进制只写模式
ab 二进制追加模式

提示:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型

+b的模式

模式 说明
rb+ 二进制读写模式
wb+ 二进制读写模式
xb+ 二进制只写模式
ab+ 二进制读写模式

三、Python文件读取方式

模式 说明
read([size]) 读取文件全部内容,如果设置了size,那么久读取size字节
readline([size]) 一行一行的读取
readlines() 读取到的每一行内容作为列表中的一个元素

测试的文件名是"www.baidu.com.conf",文件内容为:

  server {
    listen 80;    //80端口
    server_name www.baidu.com;     //设置域名
  ?
    location / {
      index index.html;
      root /usr/htdocs/linux; //直接输入linux.com是进到了这里 ,一般配置和解析php所在目录一直
    }
  ?
    location ~ \.php$ {
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME /usr/htdocs/linux/$fastcgi_script_name;   //当前虚拟主机对应的目录
      include fastcgi_params;
    }
  }

read

代码:

  # 以只读的方式打开文件www.baidu.com.conf
  f = open("www.baidu.com.conf","r")
  # 读取文件内容赋值给变量c
  c = f.read()
  # 关闭文件
  f.close()
  # 输出c的值
  print(c)

输出结果:

 D:\Script\venv\Scripts\python.exe D:/python-new/Python练习/Python文件管理/file_op.py
  server {
    listen 80;    //80端口
    server_name linux.com;     //设置域名
  ?
    location / {
      index index.html;
      root /usr/htdocs/linux; //直接输入linux.com是进到了这里 ,一般配置和解析php所在目录一直
    }
  ?
    location ~ \.php$ {
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME /usr/htdocs/linux/$fastcgi_script_name;   //当前虚拟主机对应的目录
      include fastcgi_params;
    }
  }

readline

代码:

  #!/usr/bin/env python
  # ~*~ coding: utf-8 ~*~
  __author__ = "Zhang.H"
  ?
  Nginx_Conf = open("www.baidu.com.conf","r",encoding="utf-8")    # # 以只读模式打开文件
  print(Nginx_Conf.readline())    # 读取第一行
  print(Nginx_Conf.readline())    # 读取第二行
  print(Nginx_Conf.readline())    # 读取第三行
  Nginx_Conf.close()  # 关闭文件

输出结果:

  D:\Script\venv\Scripts\python.exe D:/python-new/Python练习/Python文件管理/file_op.py
  server {
  ?
    listen 80;    //80端口
  ?
    server_name www.baidu.com;     //设置域名

readlines

  #!/usr/bin/env python
  # ~*~ coding: utf-8 ~*~
  __author__ = "Zhang.H"
  ?
  Nginx_Conf = open("www.baidu.com.conf","r",encoding="utf-8")   # 以只读的方式打开文件,将文件所有内容赋值给Nginx_Conf
  for i in Nginx_Conf.readlines():    # 遍历输出文件内容
      print(i)

结果

    D:\Script\venv\Scripts\python.exe D:/python-new/Python练习/Python文件管理/file_op.py
  server {
  ?
    listen 80;    //80端口
  ?
    server_name www.baidu.com;     //设置域名
  ?
  ?
  ?
    location / {
  ?
      index index.html;
  ?
      root /usr/htdocs/linux; //直接输入linux.com是进到了这里 ,一般配置和解析php所在目录一直
  ?
    }
  ?
  ?
  ?
    location ~ \.php$ {
  ?
      fastcgi_pass 127.0.0.1:9000;
  ?
      fastcgi_index index.php;
  ?
      fastcgi_param SCRIPT_FILENAME /usr/htdocs/linux/$fastcgi_script_name;   //当前虚拟主机对应的目录
  ?
      include fastcgi_params;
  ?
    }
  ?
  }

四、Python文件写入方式

方法 说明
write(str) 将字符串写入文件
writelines(sequence or strings) 写多行到文件,参数可以是一个可迭代的对象,列表、元组等

write

代码:

  #!/usr/bin/env python
  # ~*~ coding: utf-8 ~*~
  __author__ = "Zhang.H"
  ?
  Nginx_Conf = open("www.baidu.com.conf","w",encoding="utf-8")    # 以写的模式打开文件write.txt,没有则创建,有则覆盖内容
  Nginx_Conf.write("Nginx_Config")    # 在文件内容中写入字符串
  Nginx_Conf.close()  # 关闭文件

www.baidu.com.conf文件内容为:

  Nginx_Config

writelines

代码:

  #!/usr/bin/env python
  # ~*~ coding: utf-8 ~*~
  __author__ = "Zhang.H"
  ?
  Mysql_conf = open("mysql.conf","w",encoding="utf-8") # 以只写模式打开一个不存在的文件mysql.conf
  Mysql_conf.writelines(["11","22","33"]) # 写入一个列表
  Mysql_conf.close()  # 关闭文件

mysql.conf文件内容:

  112233

五、Python文件操作所提供的方法

  
  f.close()        关闭文件
  f.fileno()      返回文件描述符
  f.readline()     从当前指针读取一行
  f.readlines()    从当前指针读取到结尾的全部行
  f.read()         从当前指针读多少个字节,没有参数读取全部
  f.tell()         告诉当前指针,是字节
  f.seek(offset [whence])    移动指针,f.seek(0)把指针移动第一行第0个字节位置
      offset: 偏移量
      whence: 位置
          0: 从文件头
          1:从当前位置
          2:从文件尾部

  f.write(string)    打开文件时,文件不存在,r,r+都会报错,其他模式则不会
  f.writelines()     必须是字符串序列,把字符串序列当作一个列表写进文件
  f.flush()          在文件没有关闭时,可以将内存中的数据刷写至磁盘
  f.truncate()       文件截取多少字节保留,指针后面的内容全部会清空
  ?
  f.name             是返回文件名字,不是方法,是属性
  f.closed           判断文件是否已经关闭
  f.encoding         查看编码格式,没有使用任何编码,则为None
  f.mode             打开文件的模式
  f.newlines         显示出换行符的,空为默认\n不显示

六、同时打开多个文件

为了避免打开文件后忘记关闭,可以通过管理上下文,即:

  with open(‘log‘,‘r‘) as f:
   代码块

如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。

在Python 2.7 及以后,with又支持同时对多个文件的上下文进行管理,即:

  with open(‘log1‘) as obj1, open(‘log2‘) as obj2:
      pass

七、文件系统功能

  import os
  • 目录相关:
  os.getcwd() 返回当前工作目录
  os.chdir() 切换目录
  os.chroot() 设定当前进程的根目录
  os.listdir() 列出指定目录下的所有文件名
  os.mkdir() 创建指定目录
  os.makedirs() 创建多级目录
  os.rmdir() 删除陌路
  os.removedirs() 删除多级目录
  • 文件相关:
  os.mkfifo() 创建管道文件
  os.mknod() 创建设备文件
  os.remove() 删除文件
  os.rename() 文件重命名
  os.stat() 查看文件的状态属性
  os.symlink() 创建链接文件
  os.unlink() 删除链接文件
  os.utime() 更新文件时间戳
  os.tmpfile() 创建并打开(w+b)一个新的
  os.walk() 生成目录结构的生成器
  • 访问权限:
  os.access() 检验文件某个用户是否有访问权限
  os.chmod() 修改权限
  os.chown() 修改属主属组
  os.umask() 设置默认权限模式
  • 文件描述符:
  os.open() 根据文件描述打开
  os.read() 根据文件描述读
  os.write() 根据文件描述符写
  • 创建设备:
  os.mkdev() 创建设备文件
  os.major() 获取设备主版本号
  os.minor() 获取设备次版本号
  • 用户相关:
  os.getuid() 获取当前用户的uid
  os.getgid() 获取当前用户的gid
  • 文件路径:
  os.path.basename() 路径基名
  os.path.dirname() 路径目录名
  os.path.join() 将dirname()和basename()连接起来
  os.path.split() 返回dirname(),basename()元组
  os.path.splitext() 返回(filename,extension)元组
  os.path.getatime()
  os.path.getctime()
  os.path.getmtime()
  os.path.getsize() 返回文件的大小
  os.path.exists() 判断指定文件是否存在
  os.path.isabs() 判断指定的路径是否为绝对路径
  os.path.isdir() 判断是否为目录
  os.path.isfile() 判断是否为文件
  os.path.islink() 判断是否为链接文件
  os.path.ismount() 判断是否为挂载点
  os.path.samefile() 判断两个路径是否指向了同一个文件

原文地址:https://www.cnblogs.com/zhang789/p/9157251.html

时间: 2024-12-23 10:41:19

第六章、Python文件操作的相关文章

第十二章 Python文件操作

12.1 open() open()函数作用是打开文件,返回一个文件对象. 用法格式:open(name[, mode[, buffering[,encoding]]]) -> file object name 文件名 mode 模式,比如以只读方式打开 buffering 缓冲区 encoding 返回数据采用的什么编码,一般utf8或gbk Mode Description r 只读,默认 w 只写,打开前清空文件内容 a 追加 a+ 读写,写到文件末尾 w+ 可读写,清空文件内容 r+ 可

【阅读笔记】《C程序员 从校园到职场》第六章 常用文件操作函数 (Part 1)

参考链接:https://blog.csdn.net/zhouzhaoxiong1227/article/details/24926023 让你提前认识软件开发(18):C语言中常用的文件操作函数总结及使用方法演示代码 - CSDN博客 Contents: 1. C语言中常用的文件操作函数总结 (1) fopen   作用:打开文件 (2) fclose  作用:关闭文件 (3) fgetc   作用:由文件中读取一个字符. (4) fgets   作用:由文件中读取一字符串. (5) fflu

Gradle 1.12 翻译——第十六章. 使用文件

有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com/1.12/userguide/userguide.html 本文原创,转载请注明出处:http://blog.csdn.net/maosidiaoxian/article/details/41113353 关于我对Gradle的翻译,以Github上的项目及http://gradledoc.qin

Python文件操作及seek偏移详解

本文和大家分享的主要是python中文件操作及seek偏移相关内容,一起来看看吧,希望对大家学习python有所帮助. 一.Python文件操作中的编码 本次测试是基于Python 2.7.12  OS:Ubuntu 16.04  pycharm环境,以及Win7下2.7.12; 首先说下汉字在文件中占用的字节数,这个先看以下实验(Win7)下 因为Linux下不支持gbk,本文不讲utf-8 ,gbk编码具体知识.本次实验只讲解python在使用utf-8和gbk编码时,对汉字占用的字节有所不

python 文件操作seek() 和 telll() 自我解释

python 文件操作seek() 和 telll()  自我解释 file.seek()方法格式: seek(offset,whence=0)   移动文件读取指针到制定位置 offset:开始的偏移量,也就是代表需要移动偏移的字节数. whence: 给offset参数一个定义,表示要从哪个位置开始偏移:0代表从文件开头算起,1代表开始从当前位置开始算起,2代表从文件末尾开始算起.当有换行时,会被换行截断.                        seek()无返回值,故值为None

关于python 文件操作os.fdopen(), os.close(), tempfile.mkstemp()

嗯.最近在弄的东西也跟这个有关系,由于c基础渣渣.现在基本上都忘记得差不多的情况下,是需要花点功夫才能弄明白. 每个语言都有相关的文件操作. 今天在flask 的例子里看到这样一句话.拉开了文件操作折腾的序幕 db_fd, flaskr.app.config['DATABASE'] = tempfile.mkstemp() 稍微查询一下就能了解到 tempfile是一个临时文件模块. 包含了一些临时文件的操作 tempfile.mkstemp() 在很老很老的python版本的时候,第一个参数是

《Linux Shell脚本攻略》 笔记 第三章:文件操作

<Linux Shell脚本攻略> 笔记 第三章:文件操作 1.生产任意大小的文件 [[email protected] dd_test]# [[email protected] dd_test]# dd if=/dev/zero of=junk.data bs=1k count=10 10+0 records in 10+0 records out 10240 bytes (10 kB) copied, 0.00137023 s, 7.5 MB/s 2.文件系统相关测试 [ -f $file

Python基础篇【第2篇】: Python文件操作

Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说:1. 打开文件 2.操作文件 3.关闭文件 1. 打开文件.关闭文件 Python中使用open函数打开一个文件,创建一个file操作对象. open()方法 语法: file object = open(file_name [, access_mode][, buffering]) 各个参数的细

Python文件操作与函数目录

文件操作 python文件操作 函数 Python函数学习——初步认识 Python函数学习——作用域与嵌套函数 Python函数学习——匿名函数 python内置函数 Python函数学习——递归 Python函数——命名空间与闭包 Python函数——闭包延迟绑定 Python函数——装饰器 Python函数-列表推导式.生成器与迭代器 练习题 Python文件与函数练习题 案例 python函数练习——个人信息修改 Python函数案例——员工信息管理 原文地址:https://www.c