python基础-文本操作

文件IO

#文件的基本操作

1.在python中你可以用file对象做大部分的文件操作

2.一般步骤:

  先用python内置的open()函数打开一个文件,并创建一个file对象,

  然后调用相关方法进行操作

语法:

file_object = open(file_name[,acess_mode][,buffering])

file_name变量是一个包含了你要访问的文件名称的字符串值

access_mode决定了打开文件的模式:只读,写入,追加等.这个参数是非强制的,默认文件访问模式为只读(r)

buffering:如果buffering的值设为0,就不会有寄存.如果buffering值取1,访问文件时会寄存

  如果将buffering的值设为大于1的整数,表明了这就是寄存区的缓冲大小,如果取负值,寄存区的缓冲大小则为系统默认

不同模式打开文件的完全列表:

  

file对象的属性

一个文件被打开后,你有一个file对象,你可以得到有关文件的各种信息

以下是和file对象相关的所有属性的列表:

file.closed  返回true如果文件已被关闭,否则返回false

file.mode  返回被打开文件的访问模式

file.name  返回文件的名称

file.softsapce  如果用print输出后,必须跟一个空格符,则返回false,否则返回true

doc = "D:\python workspace\log.txt"

print("演示open")
fo = open(doc,‘w‘) #w代表写入
print("文件名是",fo.name)
print("是否关闭了文件",fo.closed)
print("打开方式",fo.mode)

print("\n演示close")
fo = open(doc,‘w‘)
print("文件名是",fo.name)
#关闭打开的文件
fo.close()
print("是否关闭了文件",fo.closed)

print("\n演示写入")
fo = open(doc,‘w‘)
fo.write("好与坏")
#关闭打开的文件
fo.close()

‘‘‘
w 换成 wb,会报错
TypeError: ‘str‘ does not support the buffer interface
‘‘‘

print("\n演示read")
#打开一个文件
fo = open(doc,"r+")#r+ 读写
str = fo.read()
print("文件中的内容是",str)
#关闭文件
fo.close()

结果:

演示open
文件名是 D:\python workspace\log.txt
是否关闭了文件 False
打开方式 w

演示close
文件名是 D:\python workspace\log.txt
是否关闭了文件 True

演示写入

演示read
文件中的内容是 好与坏

文件名/t会有转义,三种写法避免:

fileName = r"D:\test1\test2\test.txt"  加r

filename = "D:\\test1\\test2\test.txt"  加双\\

filename = "D:/test1/test2/test.txt"  \改成/  (推荐这种)

文件定位

1.tell()方法告诉你文件内的当前位置

2.seek(offset[,where])方法改变当前的位置

offset变量便是要移动的位数.where变量置顶开始移动的参考位置

where为0表示文件开始处,这是默认值;1表示当前位置;2表示文件结尾

#打开一个文件
doc = "D:/python workspace/log.txt"
fo = open(doc,"r+")
str = fo.read()
print("文件中的内容是:",str)
#查找当前位置
position = fo.tell()
print("当前位置:",position)

#把指针再次重新定位到文件开头
position = fo.seek(0,0)
str = fo.read(2)#读两个字符
print("文件中的内容是:",str)
str = fo.read(-1)#读光标之后的全部
print("文件中的内容是:",str)

#关闭打开的文件
fo.close()

结果:

文件中的内容是: 好与坏 坏与好
当前位置: 13
文件中的内容是: 好与
文件中的内容是: 坏 坏与好

练习:以w方式打开文件,通过write和writelines分别写入内容

file.write(str)  将字符串写入文件,没有返回值

file.writelines(sequence)  向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符

#打开一个文件
doc_1 = "D:/python workspace/log1.txt"
fo = open(doc_1,"w")
fo.write("试试怕什么,又不会怀孕1")

fo.writelines(["试试怕什么1\n","又不会怀孕2"])

#关闭文件
fo.close()

write是写入一行

writelines可以写入多行,用\n分行

结果:

以w+方式打开文件,写两行数据,读取文件全部内容

doc_2 = "D:/python workspace/log2.txt"
fo = open(doc_2,"w+")
fo.writelines(["试试怕什么1\n","又不会怀孕2"])

#查看当前位置
position = fo.tell()
print("当前位置:",position)

#重置位置
#把指针再次重新定位到文件开头
position = fo.seek(0,0)

#读取文件
str1 = fo.read()
print(str1)

#readlins()读出是列表
#str2 = fo.readlines()
#for i in str2:#  print(i)

#关闭文件
fo.close()

第一次写的时候,发现打的空,

加入查找当前位置语句,发现写完后,光标在最末位,so重置到初始位置后,再读出所有文件

结果:

当前位置: 24
试试怕什么1
又不会怀孕2

清空一个文件

file.truncate([size]):截取文件,截取的字节通过size置顶,默认为当前额外年间位置

如果没有指定size则会从当前位置截取,也就相当于都删除了

时间: 2024-10-10 06:37:21

python基础-文本操作的相关文章

课堂笔记:Python基础-文件操作

对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: 昨夜寒蛩不住鸣. 惊回千里梦,已三更. 起来独自绕阶行. 人悄悄,帘外月胧明. 白首为功名,旧山松竹老,阻归程. 欲将心事付瑶琴. 知音少,弦断有谁听. f = open('小重山') #打开文件 data=f.read()#获取文件内容 f.close() #关闭文件 注意 :在Windows系统中,hello文件是utf8保存的,打开文件时open函数是通过操作系统打开的文件,而win操

Python基础-文件操作

1. 文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 语法 open(filename, mode) 实例 2. 文件打开模式 r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读:   不存在则创建:存在则只追加内容:] "+" 表示可以同时读写某个文件 r+,可读写文件.[可读:可写:可追加] w+,写读 a+,同a "U"表示在读取时,可以将 \r \n \r\n自动转换

第七章:Python基础のXML操作和面向对象(上集)

本課主題 XML介绍和操作实战 shutil 模块介绍和操作实战 subprocess 模块介绍和操作实战 XML介绍和操作实战 對於浏览器返回的字符串有以下幾種: HTML JSON,表现是列表和字典的格式 XML XML的應用 一个属性里包含多过属性,一类是页面上做展示的时候可以用到XML,就是为别人来调用(这也是字符串类型的一个XML格式数据);另外一类是配置文件.你可以從文件裡打開一個XML文件,它返回的是一個XML形式的字符串:也可以通過發送 HTTP請求,返回一個 XML 形式的字符

Python基础-----文件操作(处理)

1. 打开文件的模式有(默认为文本模式):r ,只读模式[默认模式,文件必须存在,不存在则抛出异常]w,只写模式[不可读:不存在则创建:存在则清空内容]a, 之追加写模式[不可读:不存在则创建:存在则只追加内容] 2. 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码.图片文件的jgp格式.视频文件的avi格式)rb wbab注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不

python基础六--操作数据库

操作数据库模块:mysql的pymysql和redis的redis ,参考http://www.nnzhp.cn/blog/archives/402 1.操作mysql import pymysql conn=pymysql.connect(host='192.168.160.3',user='root',port=3306,passwd='123456',db='hqtest',charset='utf8') #建立数据库连接 #关键字传参 couser=conn.cursor() #在连接上

第三章 Python基础——文件操作&函数 续

3.6函数进阶 名称空间:name space 例:若变量X=1,1存放于内存中,那存放X与1绑定关系的地方就叫做名称空间. 名称空间共三种,分别如下: locals:是函数内名称空间,包括局部变量和形参 globals:全局变量,函数定义所在模块的名字空间 builtins:内置模块的名字空间 不同变量的作用域不同就是由于这个变量所在的命名空间决定的. 作用域即范围: 全局范围:全局存活,全局有效 局部范围:临时存活,局部有效 注:查看作用域方法 globals(),locals() 作用域查

python基础---序列操作

1.索引(indexing) 在序列中每个元素都会分配1个数字,从左至右,从数字0开始(-0和0一样,指向左起第一个元素),正整数表示左起元素位,例如 例:greeting='Hello' [0] 'H' 例:greeting='Hello' greeting[-0] 'H' 例:greeting='Hello' greeting[-1] 'o' 2.切片(slicing) 索引是对单个元素进行访问,分片是对一定范围内的元素进行访问,分片既支持正数索引,也支持负数索引.分片操作的实现需要提供2个

python 基础(文件操作,注册,以及函数)

1,文件操作 1,文件路径: 2,编码方式:utf-8, gbk.... 3,操作方式:只读,只写,追加,读写,写读 1,只读 :r   rb   不用编码,以什么形式存储就以什么形式读出来 f = open('  文件名',mode = 'r',encoding = 'utf-8') content = f.read() print(content) f.close()  必须存在 2,只写:w     没有此文件就会创建,先将源文件的内容全部清除,再写    wb不用编码 3,追加:a 4,

python基础3-json操作

json操作 例子1: #json就是字符串 import json d = {"name":"abc"} json_str = json.dumps(d) #把字典/list转成字符串(json) print(json_str) json_str2 = '{"xmb":"123456","age":"30"}' dic = json.loads(json_str2) #把字符串(jso