文件操作步骤

  1. 打开文件
  2. 读/写文件
  3. 保存文件
  4. 关闭文件

文件打开模式

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导入模块步骤

  1. 打开模块文件
  2. 执行模块对应的文件,将执行过程中产生的函数名或变量名都丢到模块的名称空间
  3. 在程序中会有一个模块的名称指向模块的名称空间

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基础(七)相关推荐

  1. 孙立岩 python-basic: 用于学习python基础的课件(一二三四)

    python-basic: 用于学习python基础的课件 介绍 此部分讲解Python的基础,点击目录学习对应的小节: 01-简介,概述一下python: 02-环境搭建,如何在大家自己的windo ...

  2. 没学过python、但是还是有公司要-学习python 基础都会了 为什么还是做不出项目呢?...

    原标题:学习python 基础都会了 为什么还是做不出项目呢? Python是一门足够简单但又非常强大的程序语言,应用领域甲冠天下,在WEB开发.WEB爬虫.科学计算.人工智能.云计算.数据分析.数据 ...

  3. python语言的单行注释以井号开头_推荐|零基础学习Python基础知识

    原标题:推荐|零基础学习Python基础知识 Python是一种面向对象.解释型计算机程序设计语言.语法简洁清晰,强制用空白符作为语句缩进. Python具有丰富和强大的库,又被称为胶水语言.能把其他 ...

  4. python学全栈还是运维_Python全栈学习——Python基础及Web开发

    原标题:Python全栈学习--Python基础及Web开发 在DevOps火热的敏捷行业中,无论是开发还是运维都在互联网快速发布下练就了一身的本领,微服务下的敏捷开发体系及智能运维体系都在实战中逐步 ...

  5. 在学习Python基础中需要知道的知识点:运算符大全,收藏,以后方面查询(算术运算符、赋值运算符、比较运算符、位运算符、逻辑运算符、成员运算符、身份运算符、运算符优先级))

    一.算术运算符 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 - 两个数相乘或是返回一个被 ...

  6. python语法基础学习-Python基础语法精心总结!看完都知道的可以往下继续学习了...

    原标题:Python基础语法精心总结!看完都知道的可以往下继续学习了 这应该是最详细的Python入门基础语法总结! 定义变量,使用变量 1. input 用户自己输入值 2. print 打印值 可 ...

  7. 苦苦发愁学习Python?七天掌握Python就在此时

    Python的优势是什么? 大数据时代,越来越多的人开始把python应用到数据分析领域,因为pyhton在表格操作.数据可视化等方面有其独特的优势,主要体现在以下3个方面: 一是编程上手快 pyth ...

  8. 【python零基础入门学习】Python入门,带你快速学习Python 基础语法

    ython 语言与 Perl,C 和 Java 等语言有许多相似之处.但是,也存在一些差异. 在本章中我们将来学习 Python 的基础语法,让你快速学会 Python 编程. 第一个 Python ...

  9. 0基础学习Python基础语法(0)-print()与变量

    文章目录 Python[人工智能]时代的立身武器 print 无引号 单引号的用法 双引号的用法 三引号的用法 转义字符 变量和赋值 变量的命名规范 下关预告 Demo 例子:打印 例子:转义字符 要 ...

  10. 软件测试人员该学习 Python 的七个理由

    对于一个软件测试工程师来说,选哪一门语言来入手编程一直是件非常纠结的事情,当然立志做一辈子功能测试的人除外. 值得庆幸的是,专门介绍软件,工具及网站服务的技术Blog上CarlCheo绘制了一张图表, ...

最新文章

  1. django获取div id_Django+React全栈开发:路由
  2. 念数字python_我是怎样利用python PIL将图片数字读出来的?
  3. ORACLE 效率测试小工具 Runstats
  4. Hadoop之Hadoop基础知识面试复习
  5. c语言输入一个数存数组,//从键盘上输入若干整数,并将其存入数组中,并统计输入数据的个...
  6. Android深度探索(卷1)HAL与驱动开发 心得体会 第十章 嵌入式Linux的调用技术
  7. 揭秘ASP.NET 2.0的Eval方法
  8. MySQL存储过程之查询受影响的行数与查询到的行数
  9. springboot整合freemarker中文乱码
  10. python logger filter_使用Filter过滤python中的日志输出的实现方法
  11. 使用 Apache JMeter™工具进行性能测试
  12. NLP系列之文本分类
  13. java流程图平行四边形_编程技巧之流程图
  14. 陈进: 创业维艰吗? 换个皮肤就能获批一亿经费!
  15. 【阿里Java技术进阶】官方钉群直播大全(持续更新)...
  16. 手把手带你撸一个校园APP(一):项目简介
  17. OSChina 周六乱弹 —— 给你看个小仙女
  18. C# XtraReport学习之三 绑定数据
  19. 高级网格交易学习笔记
  20. CoinGeek直播大会(2020)将在著名的纽约曼哈顿中心举行

热门文章

  1. H3C防火墙基础配置操作
  2. 亚马逊CPC广告每日该怎么调整?
  3. 模拟软件-OLED及太阳能电池的模拟软件(漂流扩散模块)-[Setfos]
  4. java助教面试自我介绍,助教面试自我介绍
  5. mongodb根据表名查询_使用MongoDB数据库查询数据
  6. 基于jQueryUI控件、oracle应用双机架构企业PMS系统实战课程-张勇-专题视频课程
  7. Python处理Excel第三方库的常用方法
  8. 《断章》---卞之琳
  9. android商城首页demo,FanZhengxi
  10. 英语单词词性顺口溜_口诀1 英语的词类