python文件操作及os模块常用命令
1、文件打开
文件句柄 = open('文件路径', '模式')
2、文件操作
打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。
三种基本的文件操作模式:r(only-read)、w(only-write)、a(append)
r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
w,只写模式【不可读;不存在则创建;存在则清空内容】
x, 只写模式【不可读;不存在则创建,存在则报错】
a, 追加模式【可读; 不存在则创建;存在则只追加内容】 "+" 表示可以同时读写某个文件 r+, 读写【可读,可写】
w+,写读【可读,可写】
x+ ,写读【可读,可写】
a+, 写读【可读,可写】 "b"表示以字节的方式操作 rb 或 r+b
wb 或 w+b
xb 或 w+b
ab 或 a+b
注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码 3.关闭文件 使用close() 补充:with语句自带使用close()方法, 这也是为了防止打开文件忘记关闭 比如: with open() as f_read:#打开文件 是不需要添加close()的。
文件操作
文件名.read(n):读取指定个数的字符,文件从光标位置开始
注意:python3版本读取的是字符
python2版本读取的是字节
在读取完第一次字符时,第二次读取从上次读取完的字符开始
比如:
f = open("test",mode="r",encoding="utf8")
data = f.read(5)
data2 = f.read(6)
print(data)
print(data2)
得到的答案是
globa
l
f.readline 读取一行,光标到下一行行首
f.readlines 显示列表结果,每一个元素是一行内容 行与字符串的拼接
使用join用法
文件名.join([文件名,“需要添加的字符串”])
循环整个文件,并在一行中拼接使用for循环 .write
f =open(name,mode=w) 修改文件可读权限
文件名.write("") 覆盖文件信息 文件名.write("\n") 换行 f =open(name,mode="a")追加信息,原来文件信息不变 f =open(name,mode="x")原有的文件不覆盖,会报错;没有的文件重新创建 f=write("")把内容添加到内存,在一定时间内显示出来 f.writelines(["11\n","22\n"])写多行
f.truncate() 截断 只能在写权限操作
可读可写模式
r+ 追加写
默认光标在开始位置
w+ 首先会覆盖,清空,然后再写,seek调整 a+ 总是在最后位置添加。光标在文件最后位置
无论光标在什么位置,一定是追加写:
想读取内容:seek调增 .flush操作
f=flush("") 直接显示,内容直接存储在硬盘上
比如:
进度条操作
sys.stdout.write("")相当于print
sys.stdout 文件
循环打印#
import sys
for i in range(10):
sys.stdout.write("#")
sys.stdout.flush()
import time
time.sleep(0.5)
1 import sys
2 for i in range(6):
3 s = "\r%s%% %s"%(i,"?"*i)
4 sys.stdout.write(s)
5 sys.stdout.flush()
6 import time
7 time.sleep(0.5)
3、其他操作
tell和seek
tell:查询文件中光标位置
seek:光标定位
f = open('file','r')
print(f.tell()) #光标默认在起始位置
f.seek(10) #把光标定位到第10个字符之后
print(f.tell()) #输出10
f.close()
----------------------
f = open('file','w')
print(f.tell()) #先清空内容,光标回到0位置
f.seek(10)
print(f.tell())
f.close()
----------------------
f = open('file','a')
print(f.tell()) #光标默认在最后位置
f.write('你好 世界')
print(f.tell()) #光标向后9个字符,仍在最后位置
f.close()
flush 同步将数据从缓存转移到磁盘
示例,实现进度条功能 import sys,time #导入sys和time模块
for i in range(40):
sys.stdout.write('*')
sys.stdout.flush() #flush的作用相当于照相,拍一张冲洗一张
time.sleep(0.2)
下面代码也能够实现相同的功能
import time
for i in range(40):
print('*',end='',flush=True) #print中的flush参数
time.sleep(0.2)
truncate 截断
不能是r模式下执行,
w模式下,已经清空所有数据,使用truncate没有任何意义,
a模式下,截断指定位置后的内容。
f = open('file','a')
f.truncate(6) #只显示6个字节的内容(6个英文字符或三个汉字),后面的内容被清空。
os模块
1. os.name——判断现在正在实用的平台,Windows 返回 ‘nt'; Linux 返回’posix'
2. os.getcwd()——得到当前工作的目录。
3. os.listdir()——指定所有目录下所有的文件和目录名。
4. os.remove()——删除指定文件
5. os.rmdir()——删除指定目录
6. os.mkdir()——创建目录(创建一层) os.makedirs()--递归创建目录
7. os.path.isfile()——判断指定对象是否为文件。是返回True,否则False
8. os.path.isdir()——判断指定对象是否为目录。是True,否则False。
9. os.path.exists()——检验指定的对象是否存在。是True,否则False
10. os.path.split()——返回路径的目录和文件名。
11. os.getcwd()——获得当前工作的目录
12. os.system()——执行shell命令。
13. os.chdir()——改变目录到指定目录
14. os.path.getsize()——获得文件的大小,如果为目录,返回0
15. os.path.abspath()——获得绝对路径。
16. os.path.join(path, name)——连接目录和文件名。
17.os.path.basename(path)——返回文件名
18. os.path.dirname(path)——返回文件路径
python文件操作及os模块常用命令的更多相关文章
- 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容
孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...
- Python文件系统功能:os模块
Python文件系统功能:os模块 1.os模块方法分类 (1)目录: chdir() 改变工作目录 chroot() 设定当前进程的根目录 listdir() 列出指定目录下的所有文件名 mkdir ...
- 文件操作和OS模块的简单操作
文件的作用 大家应该听说过一句话:“好记性不如烂笔头”. 不仅人的大脑会遗忘事情,计算机也会如此,比如一个程序在运行过程中用了九牛二虎之力终于计算出了结果,试想一下如果不把这些数据存放起来,相比重启电 ...
- python os模块 常用命令
python编程时,经常和文件.目录打交道,这是就离不了os模块.os模块包含普遍的操作系统功能,与具体的平台无关.以下列举常用的命令 1. os.name()——判断现在正在实用的平台,Window ...
- 【python】os模块常用命令
python编程时,经常和文件.目录打交道,这是就离不了os模块.os模块包含普遍的操作系统功能,与具体的平台无关.以下列举常用的命令 1. os.name()——判断现在正在实用的平台,Window ...
- python os模块常用命令
python编程时,经常和文件.目录打交道,这是就离不了os模块.os模块包含普遍的操作系统功能,与具体的平台无关.以下列举常用的命令 1. os.name()——判断现在正在实用的平台,Window ...
- [转]python os模块 常用命令
python编程时,经常和文件.目录打交道,这是就离不了os模块.os模块包含普遍的操作系统功能,与具体的平台无关.以下列举常用的命令 1. os.name()——判断现在正在实用的平台,Window ...
- Python之文件操作:os模块
Python os 模块提供了一个统一的操作系统接口函数 一.对于系统的操作 1.os.name 当前使用平台 其中 ‘nt’ 是 windows,’posix’ 是linux 或者 unix 2.o ...
- 13、Python文件处理、os模块、json/pickle序列化模块
一.字符编码 Python3中字符串默认为Unicode编码. str类型的数据可以编码成其他字符编码的格式,编码的结果为bytes类型. # coding:gbk x = '上' # 当程序执行时, ...
随机推荐
- 使用.NET Core在RESTful API中进行路由操作
介绍 当列出REST API的最佳实践时,Routing(路由)总是使它位于堆栈的顶部.今天,在这篇文章中,我们将使用特定于.NET Core的REST(web)API来处理路由概念. 对于新手API ...
- [转载] 多图详解Spring框架的设计理念与设计模式
转载自http://developer.51cto.com/art/201006/205212_all.htm Spring作为现在最优秀的框架之一,已被广泛的使用,51CTO也曾经针对Spring框 ...
- python logging模块+ 个人总结
原文地址:http://www.cnblogs.com/sislcb/archive/2008/11/25/1340627.html 从Python2.3版本中开始引入的logging模块为应用提供了 ...
- [转]SQL Server 表变量和临时表的区别
一.表变量 表变量在SQL Server 2000中首次被引入.表变量的具体定义包括列定义,列名,数据类型和约束.而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键约 ...
- ThinkPHP中浏览器友好输出函数
// 环境常量 define('IS_CLI', PHP_SAPI == 'cli' ? true : false); define('IS_WIN', strpos(PHP_OS, 'WIN') ! ...
- 【手记】让Fiddler抓取入站请求,或者叫用Fiddler做反向代理
注意:本文不涉及HTTPS的场景 最近在弄公众号开发,除了主动去调公众号接口,还存在公众号后台要反过来调你的情形,攻受转换一线间.对于回调的情况,想要知道对方是怎样来请求的很有必要.此前经常用Fidd ...
- spring学习笔记(一) Spring概述
博主Spring学习笔记整理大部分内容来自Spring实战(第四版)这本书. 强烈建议新手购入或者需要电子书的留言. 在学习Spring之前,我们要了解这么几个问题:什么是Spring?Spring ...
- Spring学习笔记(二)之装配Bean
一,介绍Bean的装配机制 在Spring中,容器负责对象的创建并通过DI来协调对象之间的关系.但是我们要告诉Spring创建哪些Bean并且如何将其装配在一起.,装配wiring就是DI依赖注入的本 ...
- scrapy初试水 day02(正则提取)
1.处理方式 法一 通过HtmlXPathSelectorimport scrapyfrom scrapy.selector import HtmlXPathSelectorclass DmozSpi ...
- win下搭建python3+PyQt5+eric6环境
一.安装python3 1.下载python3的安装包,默认安装即可,注意勾选 Add Python 3.6 to Path .但是这样默认安装的路径太长,不太方便找到,可选择定制安装,自己定义安装路 ...