首页 > 其他 > 详细

文本处理

时间:2019-08-27 22:08:39      阅读:97      评论:0      收藏:0      [点我收藏+]

文本处理

文本处理的基本步骤

  • 找到文件路径

  • 打开文件

  • 读取/修改操作

  • 保存

  • 关闭

    代码如下:

# 定义一个变量保存需要读取的文件路径
file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'

# 打开文件,指定到一个对象
f = open(file_path, encoding= 'utf-8')

# 读取文件内的内容保存到一个变量
data = f.read()

# 关闭文件
f.close()

打开文件的三种模式

  • r 模式 ---> 只读,不可写
# r模式

file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'

# 以r模式打开文件,指定到一个对象
f = open(file_path, 'r', encoding= 'utf-8')
print('f.readable:',f.readable())   #判断文件是否可读
print('f.writable:',f.writable())   #判断文件是否可写

f.close()

运行结果:

f.readable: True
f.writable: False

Process finished with exit code 0

可以看到文件只可读,不可写,尝试下读取和写入

? 写入数据:

file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'

# 以r模式打开文件,指定到一个对象
f = open(file_path, 'r', encoding= 'utf-8')
# print('f.readable:',f.readable())   #判断文件是否可读
# print('f.writable:',f.writable())   #判断文件是否可写
f.write('修改')                        #向文件内写入‘修改’

f.close()

? 运行结果:提示 not writable

io.UnsupportedOperation: not writable

Process finished with exit code 1

? 读取数据:

file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'

# 以r模式打开文件,指定到一个对象
f = open(file_path, 'r', encoding= 'utf-8')
# print('f.readable:',f.readable())   #判断文件是否可读
# print('f.writable:',f.writable())   #判断文件是否可写
# f.write('修改')                        #向文件内写入‘修改’
data = f.read()                         #读取文件内容存入data
print(data)                             #打印data
f.close()

? 运行结果:读取成功,打印出了文件的内容。

一二三四五六七八九十

Process finished with exit code 0
  • w模式 ---> 只写,不可读,清空文本文件
file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'

# 以w模式打开文件,指定到一个对象
f = open(file_path, 'w', encoding= 'utf-8')
print('f.readable:',f.readable())   #判断文件是否可读
print('f.writable:',f.writable())   #判断文件是否可写

f.close()

? 运行结果:

f.readable: False
f.writable: True

Process finished with exit code 0

可以看到文件只可读,不可写,尝试下读取和写入

? 读取数据:

file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'

# 以w模式打开文件,指定到一个对象
f = open(file_path, 'w', encoding= 'utf-8')
# print('f.readable:',f.readable())   #判断文件是否可读
# print('f.writable:',f.writable())   #判断文件是否可写
data = f.read()                     #读取文件内容存入data
print(data)                         #打印data

f.close()

? 运行结果:提示not readable

io.UnsupportedOperation: not readable

Process finished with exit code 1

? 不允许读取,注意文件内原有的内容也被清空了。

? 写入数据:

file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'

# 以w模式打开文件,指定到一个对象
f = open(file_path, 'w', encoding= 'utf-8')
# print('f.readable:',f.readable())   #判断文件是否可读
# print('f.writable:',f.writable())   #判断文件是否可写
# data = f.read()                     #读取文件内容存入data
# # print(data)                         #打印data
f.write('修改')                        #向文件内写入’修改‘

f.close()

? 运行结果:写入成功,

Process finished with exit code 0

? 写入成功,但是打开文件可以发现,原文本的内容被清空了,文本内只有新写入的数据

从上面可以看出,以w模式打开文本,文件是清空后写入,慎用!!!

  • a模式 ---> 只写,不可读,追加内容

    读取数据:

file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'

# 以a模式打开文件,指定到一个对象
f = open(file_path, 'a', encoding= 'utf-8')
print('f.readable:',f.readable())   #判断文件是否可读
print('f.writable:',f.writable())   #判断文件是否可写
data = f.read()                     #读取文件内容存入data
print(data)                         #打印data
# f.write('修改')                    #向文件内写入’修改‘

f.close()

? 运行结果:提示not readable

io.UnsupportedOperation: not readable

Process finished with exit code 1

? 写入数据:

file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'

# 以a模式打开文件,指定到一个对象
f = open(file_path, 'a', encoding= 'utf-8')
# print('f.readable:',f.readable())   #判断文件是否可读
# print('f.writable:',f.writable())   #判断文件是否可写
# data = f.read()                     #读取文件内容存入data
# print(data)                         #打印data
f.write('修改')                    #向文件内写入’修改‘

f.close()

? 运行结果:

Process finished with exit code 0

? 查看文本可以知道,写入‘修改’添加进了文本的末尾。

以a模式打开文本,写入的内容是追加在文本的末尾。

通过rb模式打开多媒体文件

通过rb模式读取音频,b不单独使用,一般与r/w/a配合,用来读取二级制数据。

# 打开一个视频文件,
f = open(r'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\07 镜像源更换.mp4','rb')

data = f.read()

print(data)

? 运行结果:

T\x00k@A\xed\x13\x18l\xf7\xff\x0e\x1f\x0e \x83\xbf\x80 \x00!\x12…………(省略)

Process finished with exit code 0

音频被解码成二级制数据,可以用来保存或其他作用。

进阶(不建议使用)

通过r+(可写可读),w+(可写可读、清空文件),a+(可写可读)使文件可读可写

? r模式打开文件,查询文件属性:

f = open(r'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\07 镜像源更换.mp4','r')
# f = open(r'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\07 镜像源更换.mp4','r+')

print('f.readable:',f.readable())
print('f.writable:',f.writable())

f.close()

? 运行结果:

f.readable: True
f.writable: False

Process finished with exit code 0

? r+模式打开文件,查询文件属性:

# f = open(r'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\07 镜像源更换.mp4','r')
f = open(r'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\07 镜像源更换.mp4','r+')

print('f.readable:',f.readable())
print('f.writable:',f.writable())

f.close()

? 运行结果:

f.readable: True
f.writable: True

Process finished with exit code 0

文件属性变为了可读可写,但是一般不建议使用,在读写过程中可能会产生不可预知的错误。

关闭文件

文件使用完毕后应该及时关闭,减少对系统内存的占用。

常规方法可在程序结束时使用f.close()来关闭打开的文件,但每次都需要手动加上去,比较麻烦,

使用下面的方法可以在文件使用完毕后自动关闭打开的文件:

with open(r'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\07 镜像源更换.mp4','rb')as f:
    data = f.read()     #
                        #这个缩进内的代码文件都是打开状态
    print(data)         #

print(1)                #这里文件自动关闭

? 运行结果:

fe\xe7\xa3f5\xaa\xabo\xfe\xb7\xffB\x…………(省略)
1

Process finished with exit code 0

程序运行到print(1)时,文件已经关闭。

文本处理

原文:https://www.cnblogs.com/liveact/p/11420959.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!