python 文本处理操作

时间:2022-12-20 13:49:05

打开和关闭文件

open 函数

用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写 '''

模式    描述
r    以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb    以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+    打开一个文件用于读写。文件指针将会放在文件的开头。
rb+    以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w    打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb    以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+    打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+    以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a    打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab    以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+    打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+    以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
'''

 

open函数,创建一份files文件

# eg_v1
files = open("file.txt","w") # "w"
files.write("hello,welcome to python !!")   # 在file.txt文本内输入内容
files.close()

  

文件读取,read 方法

read()方法从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据

# eg_v2
files_v2 = open("file.txt","r")
print (files_v2.read(20))
files_v2.close()

# >>> hello,welcome to pyt  # 读取20个字符
# read())   表示读取全部内容
# readline( ) 表示逐行读取

  

追加文件内容

# eg_v3
files_v3 = open("file.txt","a")
files_v3.write("\npython is very nice!!")
files_v3.close()

  

file 文件的属性

# 属性	描述
# file.closed	返回true如果文件已被关闭,否则返回false。
# file.mode	   返回被打开文件的访问模式。
# file.name	   返回文件的名称。
# file.softspace	如果用print输出后,必须跟一个空格符,则返回false。否则返回true。
#eg_v4
print (files_v3.closed) # 检查文件是否已经关闭
# >>> True
print (files_v3.mode)   # 返回被打开文件的访问模式
# >>> a
print (files_v3.name)   # 返回文件的名称。
# >>> file.txt

  

write 方法

files_v4 = open("file.txt","a")
files_v4.write("\nbut,Not easy to learn")
files_v4.close()

write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据 #write()方法不会在字符串的结尾添加换行符('\n')

 

文件定位

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

seek(offset [,from])方法改变当前文件的位置,Offset 变量表示要移动的字节数,From 变量指定开始移动字节的参考位置

files_v5 = open("file.txt","r")
files_v5.read(10)
print (files_v5.tell()) # 当前指针位置
# >>> 10

files_v5.seek(0,0)       # 将指针重定位
print (files_v5.tell()) # 当前指针位置
# >>> 0
files_v5.close()

  

文件重命名

文件重命名需要使用python的os模块

rename() 方法,需要两个参数,当前的文件名和新文件名。

#
import os
os.rename("file.txt","file001.txt")

  

删除文件

#
import os
os.remove("file001.txt")

remove()方法.语法:os.remove(file_name)

 

file 文件对象常用的函数

# 序号	方法及描述
# 1 file.close()    关闭文件。关闭后文件不能再进行读写操作。
# 2 file.flush()    刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
# 3 file.fileno()   返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
# 4 file.isatty()   如果文件连接到一个终端设备返回 True,否则返回 False。
# 5 file.next()     返回文件下一行。
# 6 file.read([size])   从文件读取指定的字节数,如果未给定或为负则读取所有。
# 7 file.readline([size])   读取整行,包括 "\n" 字符。
# 8 file.readlines([sizehint])  读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比sizhint较大, 因为需要填充缓冲区。
# 9 file.seek(offset[, whence]) 设置文件当前位置
# 10    file.tell() 返回文件当前位置。
# 11    file.truncate([size])   截取文件,截取的字节通过size指定,默认为当前文件位置。
# 12    file.write(str) 将字符串写入文件,没有返回值。
# 13    file.writelines(sequence)   向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。