学习python基础(七)
文件操作步骤
- 打开文件
- 读/写文件
- 保存文件
- 关闭文件
文件打开模式
with语句,不管在处理文件过程中是否发生异常,都能保证with语句执行完毕后关闭已经打开的文件句柄。
二进制读写的时候,要注意编码问题,默认情况下是gbk编码
小文件备份
def copyFile():old_file = input("请输入要备份的文件名:")file_list = old_file.split(".")# 构造新文件名new_file = file_list[0] + "备份." + file_list[1]old_f = open(old_file,"r")new_f = open(new_file,"w")content = old_f.read()new_f.write(content)old_f.close()new_f.close()copyFile()
上述代码存在每次读取旧文件时,全部读出,耗费内存资源
大文件备份,每次读写一部分
def copyBigFile():old_file = input("请输入要备份的文件名:")file_list = old_file.split(".")# 构造新文件名new_file = file_list[0] + "备份." + file_list[1]try:with open(old_file,"r") as old_f,open(new_file,"w") as new_f:while True:content = old_f.read(1024)new_f.write(content)if len(content) < 1024:breakexcept Exception as msg:print(msg)copyBigFile()
文件定位:指的是当前文件指针读取到的位置,在读写文件的过程中,用tell()函数获取当前的位置
with open("Test.txt","r") as fp:content = fp.read(3)print(content)# 一个汉字占两个字节print(fp.tell())print(fp.read(2))print(fp.tell())
truncate()对源文件进行截取操作
f2 = open("Test.txt","r+")
# 保留前十五个字符
f2.truncate(15)
print(f2.read())
f2.close()
seek()函数,在操作文件的过程中,定位到其他位置操作。
seek(offset,from)
- offset:偏移量单位字节,负数是往回偏移,正数是往前偏移。
- from:0表示文件开头,1表示当前位置,2表示文件末尾
with open(“Test备份.txt”,“rb”) as f:
data = f.read(2)
print(data.decode(“gbk”))
f.seek(4,1)
print(f.read(2).decode(‘gbk’))
f.seek(-6,2)
print(f.read().decode(“gbk”))
但seek()函数,如果不已二进制形式打开,只能从文件开头计算相对位置
模块
模块就是封装了一堆函数的py文件。
导入模块:使用关键字import
调用模块中的方法:模块名.函数名
import time
print(time.ctime())
import导入模块步骤
- 打开模块文件
- 执行模块对应的文件,将执行过程中产生的函数名或变量名都丢到模块的名称空间
- 在程序中会有一个模块的名称指向模块的名称空间
from 模块 import 方法
from time import ctime,time
print(ctime())
print(time())
os模块
提供一些系统级别的操作命令
import os
# os.rename("Test.txt","Test_重命名.txt")
# os.remove("DELE.py")
# os.mkdir("Test_directory")
# 只能删除空目录
# os.rmdir("Test_directory")# mkdir只能创建一级目录
# os.mkdir("D://myPython/sub")
# 创建多级目录
# os.makedirs("D://myPython/sub")
# os.rmdir("D://myPython")# 删除非空目录
# import shutil
# shutil.rmtree("D://myPython")# 获取当前目录
# print(os.getcwd())# 路径的拼接
# print(os.path)
# print(os.path.join(os.getcwd(),"venv"))# 获取python中的目录列表
# list11 = os.listdir("D://")
# print(list11)
with os.scandir("D://") as entities:for entity in entities:print(entity.name)basePath = "D://"
for entity in os.listdir(basePath):if os.path.isfile(os.path.join(basePath,entity)):print(entity)
模块的定义:在python中,一个.py结尾的就是一个文件
模块的分类:
- 内置模块
- 自定义模块
- 第三方模块
如果一个文件中存在__all__变量,那么只有这个变量中的元素会被from XXX import * 时导入
学习python基础(七)相关推荐
- 孙立岩 python-basic: 用于学习python基础的课件(一二三四)
python-basic: 用于学习python基础的课件 介绍 此部分讲解Python的基础,点击目录学习对应的小节: 01-简介,概述一下python: 02-环境搭建,如何在大家自己的windo ...
- 没学过python、但是还是有公司要-学习python 基础都会了 为什么还是做不出项目呢?...
原标题:学习python 基础都会了 为什么还是做不出项目呢? Python是一门足够简单但又非常强大的程序语言,应用领域甲冠天下,在WEB开发.WEB爬虫.科学计算.人工智能.云计算.数据分析.数据 ...
- python语言的单行注释以井号开头_推荐|零基础学习Python基础知识
原标题:推荐|零基础学习Python基础知识 Python是一种面向对象.解释型计算机程序设计语言.语法简洁清晰,强制用空白符作为语句缩进. Python具有丰富和强大的库,又被称为胶水语言.能把其他 ...
- python学全栈还是运维_Python全栈学习——Python基础及Web开发
原标题:Python全栈学习--Python基础及Web开发 在DevOps火热的敏捷行业中,无论是开发还是运维都在互联网快速发布下练就了一身的本领,微服务下的敏捷开发体系及智能运维体系都在实战中逐步 ...
- 在学习Python基础中需要知道的知识点:运算符大全,收藏,以后方面查询(算术运算符、赋值运算符、比较运算符、位运算符、逻辑运算符、成员运算符、身份运算符、运算符优先级))
一.算术运算符 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 - 两个数相乘或是返回一个被 ...
- python语法基础学习-Python基础语法精心总结!看完都知道的可以往下继续学习了...
原标题:Python基础语法精心总结!看完都知道的可以往下继续学习了 这应该是最详细的Python入门基础语法总结! 定义变量,使用变量 1. input 用户自己输入值 2. print 打印值 可 ...
- 苦苦发愁学习Python?七天掌握Python就在此时
Python的优势是什么? 大数据时代,越来越多的人开始把python应用到数据分析领域,因为pyhton在表格操作.数据可视化等方面有其独特的优势,主要体现在以下3个方面: 一是编程上手快 pyth ...
- 【python零基础入门学习】Python入门,带你快速学习Python 基础语法
ython 语言与 Perl,C 和 Java 等语言有许多相似之处.但是,也存在一些差异. 在本章中我们将来学习 Python 的基础语法,让你快速学会 Python 编程. 第一个 Python ...
- 0基础学习Python基础语法(0)-print()与变量
文章目录 Python[人工智能]时代的立身武器 print 无引号 单引号的用法 双引号的用法 三引号的用法 转义字符 变量和赋值 变量的命名规范 下关预告 Demo 例子:打印 例子:转义字符 要 ...
- 软件测试人员该学习 Python 的七个理由
对于一个软件测试工程师来说,选哪一门语言来入手编程一直是件非常纠结的事情,当然立志做一辈子功能测试的人除外. 值得庆幸的是,专门介绍软件,工具及网站服务的技术Blog上CarlCheo绘制了一张图表, ...
最新文章
- django获取div id_Django+React全栈开发:路由
- 念数字python_我是怎样利用python PIL将图片数字读出来的?
- ORACLE 效率测试小工具 Runstats
- Hadoop之Hadoop基础知识面试复习
- c语言输入一个数存数组,//从键盘上输入若干整数,并将其存入数组中,并统计输入数据的个...
- Android深度探索(卷1)HAL与驱动开发 心得体会 第十章 嵌入式Linux的调用技术
- 揭秘ASP.NET 2.0的Eval方法
- MySQL存储过程之查询受影响的行数与查询到的行数
- springboot整合freemarker中文乱码
- python logger filter_使用Filter过滤python中的日志输出的实现方法
- 使用 Apache JMeter™工具进行性能测试
- NLP系列之文本分类
- java流程图平行四边形_编程技巧之流程图
- 陈进: 创业维艰吗? 换个皮肤就能获批一亿经费!
- 【阿里Java技术进阶】官方钉群直播大全(持续更新)...
- 手把手带你撸一个校园APP(一):项目简介
- OSChina 周六乱弹 —— 给你看个小仙女
- C# XtraReport学习之三 绑定数据
- 高级网格交易学习笔记
- CoinGeek直播大会(2020)将在著名的纽约曼哈顿中心举行