python's eighth day for me
f : 变量,f_obj, file, f_handler,...文件句柄。
open : windows 的系统功能。
windows 默认编码方式:gbk。 Linux 默认编码方式:utf - 8.
f.close() 关闭文件。
f = open(r'F:\顾清秋.txt',encoding='utf-8',mode='r')
content = f.read()
print(content)
f.close()
文件执行动作(打开方式):
只读,只写,追加,读写,写读....
r 只读
1.文件以什么编码方式存储的,就以什么编码方式打开,编码不一致时会报错。
2.文件路径:
绝对路径:从根目录开始,一级一级查找到文件。F:\顾清秋.txt
相对路径:从同一个文件夹下,直接写文件名即可。
rb 非文字类文件时,用rb. (图片,视频等...)
1.全部都出来 f.read()
2.一行一行的读。
f = open('log',encoding='utf-8')
print(f.readline())
print(f.readline())
f.close() # 顾清秋
# # 自动换行
# 顾清秋
3.将原文件的每一行作为一个列表的元素。
f = open('log',encoding = 'utf-8')
print(f.readlines())
f.close() # ['顾清秋\n', '顾清秋\n', '顾清秋']
4.读取一部分 read(n)
在 r 模式下,read(n)按照字符去读取。
f = open('log1',encoding='utf-8')
print(f.read(2))
f.close() # qw
在 rb 模式下, read(n) 按照字节去读取。
f = open('log1',mode='rb')
content = f.read(2)
print(content)
f.close() # b'qw'
5. 循环读取
f = open('log',encoding='utf-8')
for i in f:
print(i.strip())
f.close() # 顾清秋
# 顾清秋
# 顾清秋
w 只写:
没有文件,创建一个文件写入内容。
有文件,将原文件内容清空,再写入内容。
f = open('log',encoding='utf-8',mode='w')
f.write('懒笨呆') #将懒笨呆写入到log文件中。
f.close()
wb 以bytes类型写入。
f = open('log',mode='wb')
f.write('老男孩'.encode('utf-8')) #将‘老男孩’编码成‘utf-8'写入。
f.close()
a 没有文件,创建一个文件追加内容。
有文件,直接追加内容
f =open('log2',encoding='utf-8',mode='a')
f.write('顾清秋') #将’顾清秋‘追加到'log2'文件中。
f.close()
r+ 先读,后追加 一定要先读后写
f = open('log1',encoding='utf-8',mode='r+') #是先读,后追加!!!!
content = f.read()
print(content)
f.write('123q')
f.close()
w+ 先写后读
f = open('log',encoding='utf-8',mode='w+')
f.write('zhonguo')
# print(f.tell()) #按字节去读光标位置
f.seek(3) #按照字节调整光标的位置
print(f.read())
f.close()
truncate : 按字节对原文件截取 需要在 writing 下才可用此方法。
f = open('log',encoding='utf-8',mode='a') #追加模式下
f.truncate(3) #按字节对原文件截取
f.close()
with 功能一:可以不用写 close(),程序会自动close().
with open('log',encoding='utf-8') as f:
print(f.read())
with 功能二:可以一次性操作多个文件句柄。
with open('log',encoding='utf-8') as f1,\
open('log1',encoding='utf-8') as f2: #同时对'log','log2'进行只读操作。
print(f1.read())
print(f2.read())
对文件进行操作的步骤:
1,将原文件读取到内存。
2,在内存中进行修改,形成新的内容。
3,将新的字符串写入新文件。
4,将原文件删除。
5,将新文件重命名成原文件。
import os #引用os模块
with open('log',encoding='utf-8') as f1,\
open('log3',encoding='utf-8',mode='w') as f2:
content = f1.read() #因为要全部读取才能替换,比较占空间,所以一般不用此方法。
new_content = content.replace('顾清秋','懒笨呆')
f2.write(new_content)
os.remove('log')
os.rename('log3','log')
import os
with open('log',encoding='utf-8') as f1,\
open('log3',encoding='utf-8',mode='w') as f2:
for i in f1:
new_i = i.replace('懒笨呆','顾清秋')
f2.write(new_i)
os.remove('log')
os.rename('log3','log')
python's eighth day for me的更多相关文章
- Python从入门到精通之eighth!
函数式编程与内置函数 函数作用域: def test1(): print('in the test1') def test(): print('in the test') return test1() ...
- python瓦登尔湖词频统计
#瓦登尔湖词频统计: import string path = 'D:/python3/Walden.txt' with open(path,'r',encoding= 'utf-8') as tex ...
- 正则表达式匹配可以更快更简单 (but is slow in Java, Perl, PHP, Python, Ruby, ...)
source: https://swtch.com/~rsc/regexp/regexp1.html translated by trav, travmymail@gmail.com 引言 下图是两种 ...
- python中关于传递参数模块argprase的一些小坑
今天在写代码的时候遇到了一个关于parser的一些小坑,记录在此备用. 我们知道在python中可以用argprase来传递一些参数给代码执行,来看下面的例子,假设现在有一个test文件夹,下面有3个 ...
- Python笔记_第二篇_面向过程_第二部分_2.路径、栈和队列、内存修改
这一部分分三个主题进行讲解,主要为后面的模块.包.第三方库的概念补充一些相关的内容. 1. 路径(Path): 相对路径和绝对路径. 举例1:我们先导入一个os库(模块)来观察一下路径 import ...
- 如何在Python中加速信号处理
如何在Python中加速信号处理 This post is the eighth installment of the series of articles on the RAPIDS ecosyst ...
- Python中的多进程与多线程(一)
一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
随机推荐
- combobox默认值为第一个数据,修改为空值
以前用combobox的时候默认是空的,可是昨天不知道为什么,默认的居然为第一个数据,实在让人烦恼.百度了很多,有些人说默认本来就是为空的,而有些也和我一样默认是第一个数据. 我想造成这个现象的原因应 ...
- cvSmooth函数 和 OpenCV自带的人脸检测
记录cvSmooth函数的用法和 OpenCV自带的人脸检测. (1)cvSmooth函数 void cvSmooth( const CvArr* src, CvArr* dst,int smooth ...
- 【Hive】自定义函数
Hive的自定义函数无法满足实际业务的需要,所以为了扩展性,Hive官方提供了自定义函数来实现需要的业务场景. 1.定义 (1)udf(user defined function): 自定义函数,特 ...
- Django框架(二)
一:Django项目创建步骤: 方式1:命令创建: 进入指定目录 C:\Users\bing>F: F:\>cd mysite F:\mysite>django-admin star ...
- android实现log日志输出
1.下载android的log4j的库(的封装) 去: http://code.google.com/p/android-logging-log4j/ 下载对应的 android-logging-lo ...
- Mac os x 下配置Intellij IDEA + Tomcat 出现权限问题的解决办法
出现的错误提示如下: 下午9:11:27 All files are up-to-date下午9:11:27 All files are up-to-date下午9:11:27 Error runni ...
- 如何在JM8.6编码端提取QDCT?
毫无疑问,编码端的QDCT和解码端的QDCT完全相同,下面从编码端提取QDCT. 为简便起见,仅提取第一帧第一个宏块第一个4*4块的QDCT.JM8.6编码器最核心的编码函数是encode_one_m ...
- 微信小程序-富文本解析插件wxParse基础使用及问题解决
一.插件准备 在github上可以直接下载该插件:https://github.com/icindy/wxParse 二.基本使用 1.将插件导入项目: 将wxParse文件夹放在项目目录下,如图: ...
- html display和visibility在资源加载上的区别
想要把一个html里的UI组件设置为可见/不可见,可以用两个属性,display=none/block, visibility=hidden/visible, 网上的解释是display虽然可以让一个 ...
- Hibernate之mappedBy【必读】
[http://www.cnblogs.com/redcoatjk/p/4236445.html] 一.mappedBy 单向关系不需要设置该属性,双向关系必须设置,避免双方都建立外键字段 数据库中1 ...