Python基础—09-文件操作
文件操作
目录管理(os)
system:执行系统命令
# 清空屏幕
# os.system('cls')
# 弹出计算器程序
os.system('calc')name:查看系统名称
- nt:windows内核
- posix:类unix内核
获取环境变量:
# print(os.environ['path'])
# print(os.environ.get('path2', 'abc'))
# 这里是对上面的封装
# print(os.getenv('path2', 'hello'))
print(os.getenv('XXX'))终端操作:
设置:set XXX=yyy
获取:set XXX
getcwd:获取当前工作目录
print(os.getcwd())
mkdir:创建目录(不能带中间目录)
os.mkdir('hello')makedirs:创建目录(会自动创建中间目录)
os.makedirs('a/b/c')rmdir:删除目录(只能删除空目录)
os.rmdir('hello')rename:重命名(可以是文件或目录)
os.rename(原名称, 新名称)
stat:查看文件信息(也可以是目录)
os.stat(文件名)
相对目录/绝对目录
相对目录:有参考的目录
. 表示当前目录,通过‘./’可以省略
.. 表示上一级目录,上上一级目录这样表示:../../ 绝对目录:windows中以盘符开头,类unix中以'/'开头的目录 目录分隔符:
windows:/ 或 \
类unix:/
建议:统一使用 / 说明:在文件操作时,相对目录和绝对目录都可以listdir:查看目录的直接子文件
os.listdir(目录)
path
from os import path # 目录拼接
# print(path.join('abc/def', 'hello.py')) # 提取目录
# print(path.dirname('abc/def/hello.py')) # 提取文件名
# print(path.basename('abc/def/hello.py')) # 切割目录与文件名
# print(path.split('abc/def/hello.py'))
# dir, name = path.split('abc/def/hello.py')
# print(dir, name) # 切割文件名与后缀
# name, ext = path.splitext('hello.py')
# print(name, ext) # 判断文件是否存在(也可以判断目录)
# print(path.exists('hello.py'))
# print(path.exists('aa')) # 判断是否是目录文件
# print(path.isdir('hello.py'))
# print(path.isdir('aa')) # 判断是否是普通文件
# print(path.isfile('hello.py'))
# print(path.isfile('aa')) # 获取文件大小,仅限于普通文件
print(path.getsize('01-os.py'))
# 不可以是目录(大小始终为0)
print(path.getsize('aa'))
练习:实现目录大小的统计,需要使用递归
文件操作
打开文件(open)
- 示例
fp = open('00-test.txt', 'r')- 参数
参数(file):操作的文件名
参数(mode):打开方式
参数(encoding):指定编码方式,通常不用指定,系统会自动识别- 打开方式
r:只读方式,文件不存在会报错
w:只写方式,文件不存在会创建,文件存在删除后再创建
a:追加方式,文件不存在会创建,文件存在直接打开(不会清空),只能向最后追加内容
r+:在r方式上添加写的功能
w+:在w方式上添加读的功能
a+:在a方式上添加读的功能 在上面模式上添加一个字符b,表示二进制方式打开:rb、wb、ab、rb+、wb+、ab+
说明:没有b的方式文件读写都是str类型,带b的方式文件读写都是bytes- 编码方式
ASCII:美国信息交换标准代码
ansi:扩展的ASCII
gb2312:中国的ansi
gbk:扩充的gb2312 unicode:万国码,将全部国家的字符全部包含进去进行统一编码
utf-8:可变长度的unicode实现方案,而且对中文支持友好- bytes类型
s = b'hello'
print(s)
print(type(s)) # 编码:str => bytes
s = 'hello'.encode('utf-8')
print(s) # 解码:bytes => str
b = s.decode('utf-8')
print(b)关闭文件
fp.close()
文件读写
# 判断是否可读
# print(fp.readable())
# 读取指定长度内容
# ret = fp.read(3) # 一次读取一行
# print(fp.readline()) # 读取所有内容,返回一个列表,一行一个元素
# lines = fp.readlines() # 判断是否能够进行写操作
# print(fp.writable())
# fp.write('world')
# fp.write(b'gogogo')文件指针
# 获取文件指针的位置
print(fp.tell()) # 设置指针偏移
# 参数1:偏移量
# 参数2:参考位置,0表示开头,1表示当前,2表示末尾
# 带b的方式打开,设置偏移没有问题
# 不带b的方式打开,设置偏移会报错
fp.seek(-5, 1)文件删除
os.remove(文件名)
练习:(递归)删除一个目录
Python基础—09-文件操作的更多相关文章
- python基础篇(文件操作)
Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...
- python基础之文件操作
对于文件操作中最简单的操作就是使用print函数将文件输出到屏幕中,但是这种操作并不能是文件保存到磁盘中去,如果下调用该数据还的重新输入等. 而在python中提供了必要的函数和方法进行默认情况下的文 ...
- Day3 Python基础学习——文件操作、函数
一.文件操作 1.对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过文件句柄对文件进行操作 关闭文件 #打开文件,读写文件,关闭文件 http://www.cnblogs.com/linha ...
- python基础14_文件操作
文件操作,通常是打开,读,写,追加等.主要涉及 编码 的问题. #!/usr/bin/env python # coding:utf-8 ## open实际上是从OS请求,得到文件句柄 f = ope ...
- 【python基础】文件操作
文件操作目录 一 .文件操作 二 .打开文件的模式 三 .操作文件的方法 四 .文件内光标移动 五. 文件的修改 一.文件操作介绍 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用pyt ...
- python基础4文件操作
在磁盘上读取文件的 功能都是由操作系统来实现的,不允许普通的程序直接操作磁盘,所以读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据( ...
- python day 09 文件操作
一 初识文件操作 使⽤用python来读写⽂文件是非常简单的操作. 我们使⽤用open()函数来打开⼀一个⽂文件, 获取到⽂文件句句柄. 然后通过⽂文件句句柄就可以进⾏行行各种各样的操作了了. 根据打 ...
- Python基础 之 文件操作
文件操作 一.路径 文件绝对路径:d:\python.txt 文件相对路径:在IDEA左边的文件夹中 二.编码方式 utf-8 gbk... 三.操作方式 1.只读 r 和 rb 绝对路径的打开操作 ...
- Python基础--基本文件操作
全部的编程语言都一样,学完了一些自带的数据机构后,就要操作文件了. 文件操作才是实战中的王道. 所以,今天就来分享一下Python中关于文件的一些基本操作. open方法 文件模式 这个模式对于写入文 ...
- python基础(10):文件操作
1. 初识文件操作 使⽤python来读写⽂件是非常简单的操作.我们使⽤open()函数来打开⼀个⽂件,获取到⽂ 件句柄,然后通过⽂件句柄就可以进⾏各种各样的操作了,根据打开⽅式的不同能够执⾏的操 作 ...
随机推荐
- 很有用的PHP笔试题系列一
1.抓取远程图片到本地,你会用什么函数? fsockopen, A 3.用PHP打印出前一天的时间,打印格式是2007年5月10日22:21:21 Echo date(‘Y-m-d H:i:s’,st ...
- 浏览器后退->清除原页面div中填写的数据
需求说明:页面表单用前端用div布局,提交之后跳转到另一个页面,但是考虑到客户奇怪的脑回路,可能会点击浏览器的后退按钮,不知道是个体情况还是都是一样,原本div中填写的数据还依然存在,所以需要让页面在 ...
- spring+springmvc+mybatis 开发JAVA单体应用
myshop 概述 myshop项目是根据视频教程 Java 单体应用 做的一个练习项目,目前完成了登录功能.用户管理.类别管理后续有时间会继续做其它的功能.趁着双11花了99元一年买了台阿里云服务器 ...
- 初学Hadoop之中文词频统计
1.安装eclipse 准备 eclipse-dsl-luna-SR2-linux-gtk-x86_64.tar.gz 安装 1.解压文件. 2.创建图标. ln -s /opt/eclipse/ec ...
- hibernate事务管理 (jdbc jta)
hibernate的两种事务管理jdbc 和jta方式.下边说说两者的区别一.说明一下jdbc和jta方式事务管理的区别:JDBC事务由Connnection管理,也就是说,事务管理实际上是在JDBC ...
- 初学orcale(一)
Oracle数据库学习: 01.数据库简介: (1)文件型数据库: Access Office组件: Foxpro (2)NoSql数据库(泛指非关系型数据库): NoSQL(NoSQL = Not ...
- c# 字体库跨域解决
网上大部分的资料说的都是在apache和ng服务器的情况下解决方案,但基本的思路都是添加响应头 场景: 页面引用css文件: <link href="http://www.tuohua ...
- SQL:exec sp_executesql 用法
--這種是無效的過程 declare @sql nvarchar(500), @where nvarchar(500),@i nvarchar(64),@p nvarchar(50),@id int ...
- HDU 5215 Cycle(dfs判环)
题意 题目链接 \(T\)组数据,给出\(n\)个点\(m\)条边的无向图,问是否存在一个奇环/偶环 Sol 奇环比较好判断吧,直接判是否是二分图就行了.. 偶环看起来很显然就是如果dfs到一个和他颜 ...
- CSS深入理解学习笔记之padding
1.padding与容器尺寸之间的关系 对于block水平元素:①padding值暴走,一定会影响尺寸:②width非auto,padding影响尺寸:③width为auto或box-sizing为b ...