博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3 Python文件操作
阅读量:6373 次
发布时间:2019-06-23

本文共 2074 字,大约阅读时间需要 6 分钟。

Python文件操作

open

以什么编码方式存储文件,就以什么编码方式打开

f = open('d:\模特主妇护士班主任.txt',encoding='utf-8')  # 绝对路径打开f.close()f = open('模特主妇护士班主任',encoding='utf-8')  # 相对路径打开f.close()with open('log',encoding='utf-8') as f:  # 此方法常用 不用进行close

read

# r 以str的方式读出f = open('模特主妇护士班主任',mode='r',encoding='utf-8')content = f.read()print(content)f.close# rb 以bytes方式读出  常用于文件的上传下载 读取非文字的文本内容f = open('模特主妇护士班主任',mode='rb')content = f.read()print(content)f.close()

readline

原文件内容:你好中国我爱中国中国nb# 一行一行的读f = open('log',mode='r+',encoding='utf-8')content = f.readline()  # 只读取文件的一行print(content)  # 你好中国f.close()

readlines

原文件内容:你好中国我爱中国中国nb# 将文件全部读出,以列表方式是显示f = open('log',mode='r+',encoding='utf-8')content = f.readlines()print(content) # ['你好中国\n', '我爱中国\n', '中国nb']f.close()

# w 没有此文件时就会创建该文件f = open('log','w',encoding='utf-8')f.write('hello 老张')f.close()# w 有此文件时就会先删除文件的内容然后在创建f = open('log','w',encoding='utf-8')f.write('hello 老王')f.flush()  # 强行将缓冲区的内容写入到磁盘中f.close()# wb 以bytes方式写入 写二进制文件f = open('log',mode='wb')  #以bytes方式写入f.write('附近 哈哈'.encode('utf-8'))  #将str转化成bytesf.close()

追加

# 只追加f = open('log','a',encoding='utf-8')f.write('嘻嘻  哈哈')print(f.read())  # 读操作不可用 因为光标在最后f.close()# 写追加 w+f = open('log','w+',encoding='utf-8')f.write('苍老师  xixi')f.seek(0)  # 调整光标的位置 可以读文件ret = f.read()print(ret)f.close()# 读追加 r+ 先写后读f = open('log','r+',encoding='utf-8')f.write('python')f.seek(0)  # 将光标至于行首 才可以读取完整ret = f.read()print(ret)f.close()

文件的修改

# 原理:    # 先找到要修改的文件    # 替换文件中要修改的内容    # 创建一个新的文件    # 写入新文件    # 删除源文件    # 重命名文件# _*_conding:utf-8_*_import osf_name = '小护士班主任'f_new_name = '小护士班主任.bak'old_str = '我爱中国'new_str = '我非常爱中国'with open(f_name,encoding='utf-8') as f1,open(f_new_name,'w',encoding='utf-8') as f2:    for line in f1:        if old_str in line:            new_line = old_str.replace(old_str,new_str)    f2.write(new_line)os.remove(f_name)os.rename(f_new_name,f_name)

其他方法

f.tell()  # 告诉你光标在哪 0表示光标在行首f.readable() # 判断文件时候可读  返回的结果为True 或 Falsef.writable() # 判断文件是否可写  返回的结果为True 或 Falsef.seek()  # 移动光标的位置f.flush()  # 强制把缓冲区中的内容放到磁盘中

转载于:https://blog.51cto.com/lzhnb/2334682

你可能感兴趣的文章
CentOS下如何从vi编辑器插入模式退出到命令模式
查看>>
Mysql索引的类型
查看>>
Eclipse debug模式 总是进入processWorkerExit
查看>>
Nginx的https配置记录以及http强制跳转到https的方法梳理
查看>>
springcloud(十三):Eureka 2.X 停止开发,但注册中心还有更多选择:Consul 使用详解...
查看>>
关于Boolean类型做为同步锁异常问题
查看>>
TestLink运行环境:Redhat5+Apache2.2.17+php-5.3.5+MySQL5.5.9-1
查看>>
Get File Name from File Path in Python | Code Comments
查看>>
显示本月每一天日期
查看>>
[转]java 自动装箱与拆箱
查看>>
NET的堆和栈04,对托管和非托管资源的垃圾回收以及内存分配
查看>>
think in coding
查看>>
IdHttpServer实现webservice
查看>>
HTML的音频和视频
查看>>
Unsupported major.minor version 52.0
查看>>
面对对象之差异化的网络数据交互方式--单机游戏开发之无缝切换到C/S模式
查看>>
优酷网架构学习笔记
查看>>
把HDFS里的json数据转换成csv格式
查看>>
WEEX-EROS | 集成并使用 bindingx
查看>>
广州牵引力来告诉你学编程先学什么语言好?
查看>>