文件的打开和关闭
python提供了必要的函数和方法进行默认情况下的文件基本操作,你可以用file对象做大部分的文件操作
注意点:操作的对象是文件,这里讲解的实例是txt文本文件的操作
文件读取都是字符串类型,写入也要以字符串格式
打开文件函数: open(他是一个内置函数,可以直接调用)
语法file object =open(file_name [,access_mode]) ----这里我们会创建一个file对象
各个参数解释如下
file_name:fime_name变量是一个包含了你要访问的文件名称的字符串值
access_mode:acess_mode决定了打开文件的模式:只读 写入,追加等。这个参数是非强制的,默认文件访问模式为只读(r)
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
例:f = open('123','r')
例:
fs=open("C:\Users\Ivan\Desktop\file.txt") 在同一级目录下,可以直接写文件名,不在同一目录下,要写完整路径,必须用\ 。open是把文件内容以str文件流的方式读到fs这个池子里面
print(fs.read()) 读取所有内容
fs.readline() 读取整行,默认起始位置在最开始 用的不多,主要是内存不够读取所有内容时才会用
fs.readlines
读取
print(fs.readlines()) //遍历文件里所有内容
for line in fs.readlines():
print(line)
区别:
.read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。然而 .read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理。
.readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ... 结构进行处理。另一方面,.readline() 每次只读取一行,通常比 .readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 .readline()。
fs = open("peseoo","w")
zn='''
a meilidezuoguo
a meilidejiangxiang
a meilidediqiu
zaaaaaaaa
'''
fs.write(zn) 写入
fs.write("helflo,hello") 在没有close之前多次调用write都是在最后继续追加内容
fs.close() 一旦关闭之后,再次写入的话前面的内容就会被后面的内容冲掉
fss = open("peseoo","w")
ab='''
adbd
efsn
sss
'''
fss.write(ab)
fss.close()
fs.write(zn) fs.write()将字符串写入文件,没有返回值。
fs.close() fs.close()关闭文件。关闭后文件不能再进行读写操作。关闭时自动保存
追加
fsss=open("peseoo","a")
fsss.write("
my name is zhounuo")
是换行符
fsss.close()
文件的读写操作
file对象提供了一系列的方法,让我们实现对文件的读写
read()方法:
1)read(count)方法从一个打开的文件中读取一个字符串
2)里面传递你要读取的字节数
3)如果不传递,默认读取所有数据
4)读完了之后,指针会定位到读完之后的位置‘
write()方法
write()方法可将任何字符串写入一个打开的文件
注意write()方法不会再字符串的结尾添加换行符(’
‘),无法实现自动换行操作
.()writelines :里面传入你要的列表内容,就可以写入多行
fsss=open("peseoo","a")
fsss.writelines(["
wo are taliking","
wo are taliking","
wo are taliking"])
fsss.close()
打印结果:
wo are taliking
wo are taliking
wo are taliking
文件对象的属性
一个文件被打开后,你有一个file对象,你可以得到有关该文件的各种信息
一下是和file对象相关的常用属性列表
file.closed 如果文件已被关闭返回true,否则返回false
flie.mode 返回被打开的文件的访问模式
file.name 返回文件的名称
文件定位
1) tell()方法告诉你文件内的当前位置,换句话说,文字会写在上次文字结尾后面
fsss=open("peseoo","a")
fsss.writelines(["
wo are taliking","
wo are taliking","
wo are taliking"])
fsss.close()
fsss=fsss=open("peseoo","r")
for line in fsss.readlines():
print(fsss.tell())
print(line)
结果:
476
my name is zhounuowo are talikingwo are talikingwo are taliking
476
my name is zhounuowo are talikingwo are talikingwo are taliking
2)seek(offset[,from])方法改变当前文件位置,offset变量表示要移动的字节数,from变量指定开始移动字节的参考位置
0:参考位置为文件开头
1:参考位置设为当前所在位置
2:参考位置设为文件结尾
os模块
一 os模块概述
python os模块包含普遍的操作系统功能,如果你希望你的程序能够与平台无关的话,这个模块尤为重要
import os
二 常用方法
1.os.name
输出字符串指示正在使用的平台,如果是window则用’nt‘表示
对于linux/unix用户,它是posix
2.os.getcwd()函数得到当前工作目录,及当前python脚本工作的目录路径 返回当前工作目录
3.os.listdir(path)返回path指定目录下的所有文件和目录名
4.os.mkdir(path)创建一个目录
5.os.remove()删除一个文件
6.os.rmdir()删除一个目录
7.os.makedirs(path)创建一系列目录
8.os.environ("path")获取环境变量值
9.os.system(command)运行系统命令
import os
print(os.getcwd()) C:UsersIvanPycharmProjectsgerenxinxi
print(os.name) nt
print(os.listdir(os.getcwd())) ['.idea', 'aaa', 'ddd', 'hanshu.py', 'peseonaninfo', 'peseoo', '个人信息', '作业']
os.mkdir("lianxi")
os.mkdir("D:\ALLY\lianxixi") 在指定目录创建文件
dirs="D:\ALLY\lianxixiI\TT"
print(os.path.exists(dirs)) //判断此路径文件是否存在,创建文件时只能最后一个文件不存在
os.makedirs(dirs) 创建多个文件夹
os模块path
os.path.join(path.name)连接目录与文件名或目录
os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录
os.path.exists()函数用来检验给出的路径是否真的存在
os.path.split(路径)函数返回一个路径的目录名和文件名
os.path.splitxt(路径)分离文件名与扩展名
os.path.dirname(path)返回文件路径
os.path.basename(path)返回文件名
os.path.getsize(name)获得文件大小,如果name是目录返回OL
PIL模块应用
以前叫PIL现在叫pillow
安装:安装失败,可能需要FQ,直接安装到lib下面的site-package里面去,执行在线安装命令是pip install pillow
语法:
from PIL import ImageGrab
im=ImageGrab.grab()
im.save(‘thumbnail’.'jpeg')
更详细强大的用法:http://pillow.readthedocs.io/en/4.2.x/