1、文件处理

  找到文件 --> 打开文件 --> 操作:读、写 --> 保存 --> 关闭


1.1.1 写文件

  (只要牵扯到文件操作,都是字符串;写文件的时候需要把写的数字转换成字符串;utf-8 只有在存储时才用。)

  

 f = open('歌词', ‘w’ ,  endcoding = 'utf-8')
# f:文件操作符、文件句柄、文件操作对象
# open 打开文件是依赖了操作系统提供的途径
# 操作系统有自己的编码,open在打开文件的时候默认使用操作系统的编码
# win : gbk mac/Linux : utf-8 # 习惯给文件操作对象命名为: f file f_obj f_handler fh print(f.writable()) # 判断文件是否可写
print(f.readable()) # 判断文件是否可读 f.write('') # 写文件时,需要写数字的话,则会把数字转换成字符串
f.write('sadasdas') # 写入字符串内容
f.write('\nasasad') # 文件的换行 \n f.write('哈哈') # 注意编码的统一性 utf-8 Unicode gbk f.close() # 结尾要加上close语句

注:

open() 打开文件是依赖了操作系统提供的途径;
操作系统有自己的编码,open在打开文件的时候默认使用操作系统的编码(win gbk mac/linux utf-8)

注:

‘\’ 转义符号 前面加 r‘str’ 或者 \\ 可以取消转义

1.1.2 找到文件详解(find files):

文件与python的执行文件在同一路径下的话,直接使用文件名就可以打开文件;
文件与python的执行文件不在同一路径下的话,用绝对路径找到文件; 文件的路径需要用取消转译的方式来表示:1)\\ 2)r'路径'
如果以写文件的方式打开一个文件,那么不存在的文件会被创建,存在的文件之前内容会被清空

1.1.3 打开文件(open files):

打开方式:

文件句柄 = open('文件路径', '模式') 

模式可以是一下方式以及他们之间的组合:

#1. 打开文件的模式有(默认为文本模式):

r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】

w,只写模式【不可读;不存在则创建;存在则清空内容】

a, 之追加写模式【不可读;不存在则创建;存在则只追加内容】

#2. 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,
  使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式) rb
wb
ab 注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

补充:

# b : 适用于图片、音乐、视频等任何文件
# 传输: 上传、下载 # a :追写内容(w的话会重新写入内容,如果之前里面有内容,会把前面的内容清空重新写入)
# a+:追加可读 # r+: 可读可写: 1)先读后写:写是追写
2)先写后读:从头开始写 #w+ : 可写可读 :一上来文件就清空了 尽管可读 :1)但是读取出来的内容是你这次打开文件新写入的
2)光标在最后,需要主动移动光标才可以读
f = open('歌词', 'w+', encoding='utf-8')
f.write('abc\n')
f.write('哈哈哈')
f.seek(0)
print(f.read()) f.close()
# python (原生不支持直接修改)里没有直接修改文件的功能

总结:

# 一般情况下:文件操作要么读,要么写,很少会读写、写读同时用

# 常用的:    r、w、a
# rb, wb, ab 不需要指定编码了

实例:

# 只显示文件中有内容的行
# 已有shoplist文件,且文件内容中有有空行,要求只显示文件中有内容的行 f = open('shoplist', encoding='utf-8')
goods_list = []
for line in f:
if line.strip():
print(line.strip())
f.close()

1.1.4 关闭文件详解(close files):

操作系统级别的关闭文件资源:f.close()    # 必须写

del f    主动释放一个python程序内存的变量     # 可写可不写

1.2 读文件:

打开文件 --> 读取文件


1.2.1 读取文件

1)读取文件的第一种方式: read()的方法,用read方法会一次性的读出文件中的所有内容
2)读取文件的第二种方式: read(n),指定读取n个单位
3)读取文件的第三种方式: readline(),按照行读取,每次执行就会往下读一行
4)读取文件的第四种方式: readlines(),返回一个列表,将文件中的每一行作为列表中的每一项返回一个列表
5)读取文件的第五种方式:
  最常用的读取方法
  for i in f:
  print(l.strip())

2.文件内光标移动:

1)seek:移动光标到第几个字节的位置(一般作用:移动到最开始和最末尾)

seek(o)  :移动到最开始
seek(0,2) :移动到最末尾
f.seek(3)    # 光标移动到三个字节的地方
content = f.read(2) # 读取两个字符

2)tell : 告诉你光标在第几个字节

3)truncate:截断文件,所以文件的打开方式必须可写,但是不能用w或w+等方式打开,因为那样直接清空文件了,所以truncate要在r+或a或a+等模式下测试效果(保留n个字节)

简述 Python3 文件处理的更多相关文章

  1. 将 Python3 文件打包成 exe 文件

    我们用 Python 写好的代码,如何给别人在没有配置 Python 环境的情况下直接使用呢?尤其是面向 windows 众. 因为 Python 是一门解释性的语言,离开了 Python 解释器,P ...

  2. python系列十四:Python3 文件

    #!/usr/bin/python #Python3 文件 from urllib import requestimport pprint,pickle'''读和写文件open() 将会返回一个 fi ...

  3. python从入门到大神---4、python3文件操作最最最最简单实例

    python从入门到大神---4.python3文件操作最最最最简单实例 一.总结 一句话总结: python文件操作真的很简单,直接在代码中调用文件操作的函数比如open().read(),无需引包 ...

  4. Python2与python3 文件操作关于打开文件

    #首先在python3中操作文件只有一种选择,那就是open() #而在python2中则有两种方式:file()与open() 两者都能够打开文件,对文件进行操作,也具有相似的用法和参数,但是,这两 ...

  5. Python3 文件的重命名

    在Python3中我们要实现将本地文件homework.txt中的内容的修改操作时,大体的思路是这样的:先将homework.txt文件的内容读取到内存中,在内存中对里面的数据进行修改,接着将修改完成 ...

  6. python3 文件读写,编码错误UnicodeDecodeError

    问题:python3 with open文件进行读写,报编码错误 /usr/local/Cellar/python3/3.5.2/Frameworks/Python.framework/Version ...

  7. Python3 文件操作(十六)

    一 文件操作 1.介绍 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众 ...

  8. python3文件操作方法

    在python3中,我们可以使用open打开一个文件,那么打开文件后,文件有什么操作方法呢?接下来我就记录一下比较常用的方法. 1. close() 关闭打开的文件 2. fileno() 返回文件句 ...

  9. Python3文件

    open()方法 Python open()方法永于打开一个文件,并返回文件对象,并对文件进行处理过程中都需要用到这个方法,如果该文件无法被打开,则抛出OSError 注意:使用open()方法一定要 ...

随机推荐

  1. 阿里大鱼短信接口(Python3版)

    近期由于须要用到短信接口,选型的的结果是用阿里大鱼的短信服务,然而淘宝开放平台(TOP)的SDK已经非常多年没有更新了.不支持python3.自己动手改了半天,还是不太正常,索性不用它,自己写一个算了 ...

  2. flink on yarn部分源码解析 (FLIP-6 new mode)

    我们在https://www.cnblogs.com/dongxiao-yang/p/9403427.html文章里分析了flink提交single job到yarn集群上的代码,flink在1.5版 ...

  3. 关于UNIX/Linux下安装《UNIX环境高级编程》源代码的问题

    <UNIX环境高级编程(第三版)>是一本广为人知的unix系统编程书籍. 但是,书中的代码示例,要想正确的编译运行,要先做好准备工作: 1.下载源代码 传送门:http://apueboo ...

  4. 李洪强和你一起学习前端之(5)css书写位置 优先级和伪类

    亲爱的,时间过得真快,不知不觉我们一起学习前端已经4天了,这4天的时间里,我们是不是收获很大呢,每当我们学习一个新的知识点的时候,每当我们做出一个新的东西来的时候,我们是不是欣喜若狂,世界从来否不会辜 ...

  5. iOS开发多线程篇 07 —GCD的基本使用

    iOS开发多线程篇—GCD的基本使用 一.主队列介绍 主队列:是和主线程相关联的队列,主队列是GCD自带的一种特殊的串行队列,放在主队列中得任务,都会放到主线程中执行. 提示:如果把任务放到主队列中进 ...

  6. java性能监控工具:jmap命令详解

    .命令基本概述 Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本.打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数 ...

  7. js将秒数换算成时分秒

    转载自:http://jingyan.baidu.com/article/375c8e19a0413925f2a229d2.html <script language="javascr ...

  8. JVM Specification 9th Edition (1) Cover

    这个就是Java虚拟机规范第9版的网页版封面了,上面是4个大牛的名字,先来了解以下吧,万一那天有幸遇见呢. Tim Lindholm Frank Yellin Gilad Bracha Alex Bu ...

  9. 【★】深入BGP原理和思想【第…

    前言:学思科技术我想说,浅尝辄止,不是天才千万别深钻.和我研究高等数学一样,越深入就会发现越多的问题与不合理之处.尤其对于IT界,算法的最终解释权还是掌握在老外手中,所以对于有些细节,我们" ...

  10. Maven 安装教程

    Linux系统: 1.准本工作 Maven下载地址:http://mirror.bit.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven- ...