Python全栈开发之文件操作

No.1 文件的概念

文件的概念和作用

计算机中的文件,就是存储在某种长期储存设备上的一段数据流

计算机中的文件,可以在需要的时候使用

文件的存储方式

文本文件

可以使用文本编辑器查看

本质上还是二进制文件

二进制文件

保留的内容不能直接查看,而是提供给其他软件查看

图片、音频、视频等都是二进制文件

No.2 文件的基本操作

操作文件的基本套路

打开文件

读写文件

关闭文件

操作文件的函数

函数 说明
fp.read([size]) size为读取的长度,以byte为单位
fp.readline([size]) 读一行,如果定义了size,有可能返回的只是一行的一部分
fp.readlines([size]) 把文件每一行作为一个list的一个成员,并返回这个list
fp.write(str) 把str写到文件中,write()并不会在str后加上一个换行符
p.writelines(seq) 把seq的内容全部写到文件中(多行一次性写入)
fp.close() 关闭文件
fp.flush() 把缓冲区的内容写入硬盘
fp.fileno() 返回一个长整型的文件标签
fp.tell() 返回文件操作标记的当前位置,以文件的开头为原点
fp.next() 返回下一行,并将文件操作标记位移到下一行
fp.seek(offset[,whence]) 将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数, whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算

read方法——读取文件

f = open(‘manage.py‘,‘r‘,encoding=‘utf-8‘)
print(f.tell())
text = f.read()
print(text)
f.close()

文件指针表示从哪个位置开始读取数据

第一次打开文件时,指针指向文件的开始位置

当执行了read方法后,指针指向文件的末尾,再次调用不会读取到任何内容

打开文件的方式

模式 说明
r 以只读方式打开文件,文件的指针将会放在文件的开头,这是默认模式,如果文件不存在,抛出异常
w 以只写方式打开文件,如果文件存在会被覆盖,如果文件不存在,创建新文件
a 以追加方式打开文件,如果该文件已存在,文件指针将会放在文件的结尾,如果文件不存在,创建新文件进行写入
r+ 以读写方式打开文件,文件的指针将会放在文件的开头,如果文件不存在,抛出异常
w+ 以读写方式打开文件,如果文件存在会被覆盖,如果文件不存在,创建新文件
a+ 以读写方式打开文件,如果该文件已存在,文件指针将会放在文件的结尾,如果文件不存在,创建新文件进行写入

逐行读取

read方法默认会把文件的所有内容一次性读入到内存中

如果文件过大,对内存的占用非常恐怖

readline方法可以一次读取一行内容

方法执行后,会把文件的指针指向下一行

复制文件

小文件复制

打开一个文件,读取全部内存,并写入到另一个文件中

# 1. 打开文件
file_read = open("README")
file_write = open("README.bak", "w")

# 2. 读取并写入文件
text = file_read.read()
file_write.write(text)

# 3. 关闭文件
file_read.close()
file_write.close()

大文件复制

# 1. 打开文件
file_read = open("README")
file_write = open("README.bak", "w")

# 2. 读取并写入文件
while True:
    # 每次读取一行
    text = file_read.readline()

    # 判断是否读取到内容
    if not text:
        break

    file_write.write(text)

# 3. 关闭文件
file_read.close()
file_write.close()

No.3 文件/目录的常用管理操作

在终端/资源管理器、 中可以执行常规的文件/目录管理操作 ,如果希望通过代码来实现,需要导入os模块

文件操作

方法 说明 示例
rrename 重命名文件 os.rename(文件名)
remove 删除文件 os.remove(文件名)

目录操作

方法 说明 示例
listdir 目录列表 os.listdir(目录名)
mkdir 创建目录 os.mkdir(目录名)
rmdir 删除目录 os.rmdir(目录名)
getcwd 获取当前目录 os.getcwd()
chdir 修改工作目录 os.chdir(目标目录)
path.isdir 判断是否是文件 os.path.isdir(文件路径)

No.4 文本文件的编码转换

No.5 with上下文管理

with open("demo","r",encoding="utf-8") as f: #自动关闭并释放文件资源
    for line in f:
        print(line)

with open("demo","r",encoding="utf-8") as f,     open("demo.bak","w",encoding="utf-8") as f2:
    for line in f:
        print(line)
        f2.write(line)

原文地址:http://blog.51cto.com/13559120/2288046

时间: 2024-10-09 17:33:32

Python全栈开发之文件操作的相关文章

python全栈开发目录

python全栈开发目录 linux命令 初识python python基础数据类型 函数编程.set.深浅拷贝 内置函数 文件操作 装饰器 迭代器和生成器 常用模块 初识类和对象 类和对象(进阶) 反射 异常处理 socket.IO多路复用 线程.进程.协程 HTML CSS JavaScript DOM文档操作 jQuery实例 web框架本质 Tornado mysql基础 mysql进阶 ..... 基本算法 递归--二分法查找 冒泡排序 更多 线程池

Python全栈开发【基础四】

Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 匿名函数 lambda表达式:对于简单的函数,存在一种简便的表示方式,即lambda表达式 1 #这段代码 2 def calc(n): 3 return n**n 4 print(calc(10)) 5 6 #换成匿名函数 7 calc = lambda n:n**n 8 print(calc(10)) 匿名函数主要是和其它函数搭配使用 举例: 1 ########

Python 全栈开发【第一篇】:目录

Python 全栈开发[第0篇]:目录 第一阶段:Python 开发入门 Python 全栈开发[第一篇]:计算机原理&Linux系统入门 Python 全栈开发[第二篇]:Python基础语法入门 Python 全栈开发[第三篇]:数据类型.字符编码.文件操作 第二阶段:函数编程&常用标准库 Python 全栈开发[第四篇]:函数.递归.生成器.迭代器 Pyhton 全栈开发[第五篇]:常用模块学习 第三阶段:面向对象编程&网络编程基础 Python 全栈开发[第六篇]:面向对象

python全栈开发学习目录

python全栈开发学习目录 第一章 计算机基础 第二章Python入门 第三章数据类型 第四章文件操作 第五章函数 第六章 模块 第七章 面向对象 第八章 网络编程 第九章 并发编程 第十章 数据库 第十一章 前端开发-html 第十一章 前端开发-css 附加:js特效 15个小demo 第十一章 前端开发-JavaScript 第十一章 前端开发-jQuery 第十一章 前端开发-bootstrap 第十二章 Django框架开发 ... 原文地址:https://www.cnblogs.

Python全栈开发【基础三】

Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 1 def 函数名(参数): 2 3 ... 4 函数体 5 ... 6 返回值 函数的定义主要有如下要点: def:表示函数的关键字 函数名:函数的名称,日后根据函数名调用函数 函数体:函数中进行一系列的逻辑计算 参数:为函数体提供数据 返回值:当函数执行完毕后,可以给调用者返回数据. 总结使用函数的好处: 1.减少代码重用 2.保持一致性,易维护

Python全栈开发【第一篇】:初识Python

Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与while循环练习题 基本数据类型前引 Python 的种类 Cpython Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上. Jyhton Python的Java实现,Jython会将Pyth

自学Python全栈开发第一次笔记

我已经跟着视频自学好几天Python全栈开发了,今天决定听老师的,开始写blog,听说大神都回来写blog来记录自己的成长. 我特别认真的跟着这个视频来学习,(他们开课前的保证书,我也写了一份,哈哈哈...)我现在是准大学生,准备学习编程,日后做一个程序员,哈哈哈.听说程序员很苦逼,不过貌似挣得也很多啊.并且我貌似也只喜欢计算机这个方面,所以我想在这个行业发光. 前些天学习了一些Linux一些命令: pwd     查看你当前所在的目录  /root=计算机/E盘 /    是根目录 cd(ch

Python 全栈开发:python列表List

列表 列表是python中经常使用的数据类型,用于存放多个值. 表现形式:在[ ]内用逗号分隔,可以存放n个任意类型的值 eg: #单一类型 users=['yangli','yite','fixd'] #多类型,列表嵌套 users=['room01',['yangli',20,'音乐'],['yite',20,'篮球'],] 列表常用方法 和 函数 方法 函数 常用的操作 eg: len(list) #len(list) 计算列表的长度 ls = ['a','b','c','d'] leng

Python 全栈开发:python元组tuple

元组 什么是元组:"元组就是一个不可变的列表" (并不是列表,只是为了便于记忆) 用途:用于存放多个值,只能读不能二次赋值 表现形式:小括号()中间以逗号分割各个元素 eg: tuples = ('a','b','c','d') 元组常用的操作 生成一个简单的元组 tuples = tuple(range(5)) print(tuples) #结果(0, 1, 2, 3, 4) len(tuple) #计算元组长度 tuples = (0, 1, 2, 3, 4) print(len(