ql的python学习之路-day5
文件操作
文件操作流程:
1.打开文件得到文件句柄并赋值变量
2.通过句柄对文件进行操作
3.关闭文件
打开的只是储存在计算机里的文件对象,必须赋值一个变量才能操作,变量通常用f表示,赋值f的文件对象也叫做文件句柄。
#!/usr/bin/env python
# -*- coding utf-8 -*-
# Author:qinjiaxi
f = open('hh','r',encoding = 'utf-8')#文件句柄
'''第一个参数是文件名,第二个是模式,第三个跟编码有关utf-8
1.r的是读是默认的模式
2.w是写要覆盖之前的内容这个要慎用
3.a是追加的意思在启动该模式写文件时不清空之前的文件内容,而是在后面追加内容
'''
#读
data = f.read()
#写
data2 = f.write("hello")
#append追加
data3 = f.write('hh')
f.close()
'''需求:
读取文件前10行
'''
#low loop
for index,line in enumerate(f.readlines()):
if index == 10:
print('----我是分割线-----')
continue
print(line.strip())
#high loop
count = 0
for line in f:
if count == 10:
print('----我是分割线-----')
count += 1
continue
print(line.strip())
count += 1
定义一个敏感词过滤器的函数
#!/user/bin/env python
#-*-coding:utf-8 -*-
#Author: qinjiaxi
def text_create(name, msg):
path ="C:\\Users\\Administrator\\Desktop\\"
file = path + name + ".txt"
text = open(file, 'w')
text.write(msg)
text.close()
# text_create('1111', 'hello world')
def fiter(word, content = 'lame', p = 'Awesome'):
return word.replace(content, p)
def censored_text(name, msg):
clean_msg = fiter(msg)
text_create(name, clean_msg)
censored_text('Try', 'lame!lame!lame!')
句柄操作及缓冲进度模拟
'''句柄操作'''
f.tell()#打印当前光标位置
f.seek()#默认回到起始位置0,括号里面可以带数字
f.encoding#打印文件的编码方式
f.flush()#强制将缓存的内容刷新到硬盘(缓存中有大小,默认当写入内容达到内容大小的时候才会刷新到硬盘中)
f.truncate()#括号中不写清空文件;括号中带数字n表示从开头截取n个字符 '''
r+:读写追加到后面(用的最多)
w+:写读,清除内容写(平时用的少基本不会用)
a+:追加读(基本不用)
rb:二进制方式读,此模式用在网络传输中,python3中只能用二进制进行,python2可以用字符和二进制格式
二进制是指用二进制编码的而不是0101的格式
wb:以二进制的方式写入,字符串转为二进制需要编码----str.encode()
'''
'''模拟进度行缓冲效果'''
import sys,time
f = open('hh','w',encoding = 'utf-8')
for i in range(20):
sys.stdout.write('#')
time.sleep(0.1)
sys.stdout.flush()#强制刷新缓冲
#注:print打印是默认换行的,stdout是标准输出、stdout是标准输入,这个标准输入和输出是指往屏幕上输
文件修改
思路:打开两个文件句柄,第一个以读的模式打开,第二个以写的模式打开,然后循环每行,再判断需要修改的内容,写入每行,直接贴源码:
f = open('hh', 'r', encoding='utf-8')
f_new = open('hh.bak', 'w', encoding='utf-8')
for line in f:
if line == '我的名字叫秦朗':
# if '我的名字叫秦朗' in line:
line = line.replace('我的名字叫秦朗','我的名字叫秦家喜')
f_new.write(line)
f.close()
f_new.close()
ql的python学习之路-day5的更多相关文章
- ql的python学习之路-day15
前言:本节主要讲解的是文件路径 在实际的软件开发中会设计一个项目的文件目录,按照执行包bin.配置包config.核心包core等来设计,在执行包里面要运行核心包里的主程序mian,由于不在同一级的目 ...
- ql的python学习之路-day14
前言:本节主要学习时间模块time.datetime python中的几种时间表示:1)时间戳 2)格式化的字符串时间 3)struct_time元组格式的时间 time.datetime模块源码: ...
- ql的python学习之路-day13
前言:本节主要学习模块 一.模块的定义 模块:本质是.py结尾的python文件(文件名:test.py,对应的模块是:test),用来从逻辑上组织python代码(变量.函数.类.逻辑,本质是实现一 ...
- ql的python学习之路-day12
前言:这一节主要学习json和pickle 背景: 相信大家在日常生活中都有接触大型的网络游戏,打游戏的时候都是自己在电脑上操作,自己刷怪升级:当然也会碰到中午去吃饭然后挂机的情况,让电脑自动的刷怪, ...
- ql的python学习之路-day11
前言:本节主要学习python内置的方法 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:qinjiaxi from collections ...
- ql的python学习之路-day10
前言:本节主要讲解迭代器和生成器 迭代器&生成器 一.生成器(generator) 循环占用大部分的容量内存,如果只需要循环前面的几个结果那怎么样做呢,在python中有一种一边循环一边计算的 ...
- ql的python学习之路-day9
前言:本节主要学习装饰器 一.装饰器 定义:本质上是个函数,用来装饰其他函数:(就是为其他函数添加附加功能) 原则:1.不能修改被装饰的函数的源代码 2.不能修改被装饰的函数的调用方式 以上两点可以总 ...
- ql的python学习之路-day8
前言:本节主要学习的是函数的全局变量和局部变量以及递归 一.全局变量和局部变量 定义在函数外并且在函数头部的变量,叫做全局变量,全局变量在整个代码中都生效. 局部变量只在函数里生效,这个函数就叫做这个 ...
- ql的python学习之路-day7
函数与函数式编程 一.编程模式分为三种: 1.面向对象编程:类----->关键字class 2.面向过程编程:过程----->关键字def,没有return 3.函数式编程:函数----- ...
随机推荐
- TensorFlow keras vgg16net的使用
from tensorflow.python.keras.applications.vgg16 import VGG16,preprocess_input,decode_predictions fro ...
- 解析一下阿里出品的泰山版 Java 开发手册
说起华山,我就想起岳不群,不,令狐冲:说起泰山,我就想起司马迁,他的那句名言"人总有一死,或重于泰山,或轻于鸿毛",真的发人深省啊.这就意味着,阿里出品的泰山版 Java 开发手册 ...
- Git速查表大全
- Playbook中标签的使用(五)
一个playbook文件中,执行时如果想执行某一个任务,那么可以给每个任务集进行打标签,这样在执行的时候可以通过-t选择指定标签执行, 还可以通过--skip-tags选择除了某个标签外全部执行等 [ ...
- Qt 的日期 时间
QDateTime 的构造函数,有参数是QDate的.这样就可以把日期转化成 QDateTime. QDateTime.toTime_t() 可以转化成 Unix 时间.
- element-ui 通用表单封装及VUE JSX应用
一.存在及需要解决的问题 一般在做后台OA的时候会发现表单重复代码比较多,且逻辑基本一样,每次新加一个表单都需要拷贝基本一致的代码结构,然后只是简单地修改对应的字段进行开发 二.预期结果 提取重复的表 ...
- bootstrap-分页-默认分页
说明 默认分页 示例 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta c ...
- C# 基础知识系列- 14 IO篇 文件的操作 (3)
本篇继续前两篇内容,跟大家介绍一下Path类以及FileSystemInfo这个类的主要方法和属性. 上文提到,在<C# 基础知识系列-IO篇>之文件相关的内容完结之后,会带领大家开发一个 ...
- INTERVIEW #1
一.数据对齐存储 在32位系统中:int占4Bytes,short占2Bytes,char占1Byte,加起来应该是7Bytes,但是下面这段代码输出却是8. #define _CRT_SECURE_ ...
- 数学--数论--HDU1576 A / B(逆元)
问题描述 要求(A / B)%9973,但由于A很大,我们只被告知n(n = A%9973)(我们给定的A必能被B整除,且gcd(B,9973)= 1). 输入项 数据的第一行是一个T,表示有T组数据 ...