• ql的python学习之路-day5


    文件操作

    文件操作流程:

    1.打开文件得到文件句柄并赋值变量

    2.通过句柄对文件进行操作

    3.关闭文件

    打开的只是储存在计算机里的文件对象,必须赋值一个变量才能操作,变量通常用f表示,赋值f的文件对象也叫做文件句柄。

     1 #!/usr/bin/env python
     2 # -*- coding utf-8 -*-
     3 # Author:qinjiaxi
     4 f = open('hh','r',encoding = 'utf-8')#文件句柄
     5 '''第一个参数是文件名,第二个是模式,第三个跟编码有关utf-8
     6 1.r的是读是默认的模式
     7 2.w是写要覆盖之前的内容这个要慎用
     8 3.a是追加的意思在启动该模式写文件时不清空之前的文件内容,而是在后面追加内容
     9 '''
    10 #
    11 data = f.read()
    12 #
    13 data2 = f.write("hello")
    14 #append追加
    15 data3 = f.write('hh')
    16 f.close()
    17 '''需求:
    18 读取文件前10行
    19 '''
    20 #low loop
    21 for index,line in enumerate(f.readlines()):
    22     if index == 10:
    23         print('----我是分割线-----')
    24         continue
    25     print(line.strip())
    26 #high loop
    27 count = 0
    28 for line in f:
    29     if count == 10:
    30         print('----我是分割线-----')
    31         count += 1
    32         continue
    33     print(line.strip())
    34     count += 1

     定义一个敏感词过滤器的函数

     1 #!/user/bin/env python
     2 #-*-coding:utf-8 -*-
     3 #Author: qinjiaxi
     4 def text_create(name, msg):
     5     path ="C:\Users\Administrator\Desktop\"
     6     file = path + name + ".txt"
     7     text = open(file, 'w')
     8     text.write(msg)
     9     text.close()
    10 # text_create('1111', 'hello world')
    11 def fiter(word, content = 'lame',  p = 'Awesome'):
    12     return word.replace(content, p)
    13 def censored_text(name, msg):
    14     clean_msg = fiter(msg)
    15     text_create(name, clean_msg)
    16 censored_text('Try', 'lame!lame!lame!')

     句柄操作及缓冲进度模拟

     1 '''句柄操作'''
     2 f.tell()#打印当前光标位置
     3 f.seek()#默认回到起始位置0,括号里面可以带数字
     4 f.encoding#打印文件的编码方式
     5 f.flush()#强制将缓存的内容刷新到硬盘(缓存中有大小,默认当写入内容达到内容大小的时候才会刷新到硬盘中)
     6 f.truncate()#括号中不写清空文件;括号中带数字n表示从开头截取n个字符
     7 
     8 '''
     9 r+:读写追加到后面(用的最多)
    10 w+:写读,清除内容写(平时用的少基本不会用)
    11 a+:追加读(基本不用)
    12 rb:二进制方式读,此模式用在网络传输中,python3中只能用二进制进行,python2可以用字符和二进制格式
    13 二进制是指用二进制编码的而不是0101的格式
    14 wb:以二进制的方式写入,字符串转为二进制需要编码----str.encode()
    15 '''
    16 '''模拟进度行缓冲效果'''
    17 import sys,time
    18 f = open('hh','w',encoding = 'utf-8')
    19 for i in range(20):
    20     sys.stdout.write('#')
    21     time.sleep(0.1)
    22     sys.stdout.flush()#强制刷新缓冲
    23 #注:print打印是默认换行的,stdout是标准输出、stdout是标准输入,这个标准输入和输出是指往屏幕上输

     文件修改

    思路:打开两个文件句柄,第一个以读的模式打开,第二个以写的模式打开,然后循环每行,再判断需要修改的内容,写入每行,直接贴源码:

    1 f = open('hh', 'r', encoding='utf-8')
    2 f_new = open('hh.bak', 'w', encoding='utf-8')
    3 for line in f:
    4     if line == '我的名字叫秦朗':
    5     # if '我的名字叫秦朗' in line:
    6         line = line.replace('我的名字叫秦朗','我的名字叫秦家喜')
    7     f_new.write(line)
    8 f.close()
    9 f_new.close()
  • 相关阅读:
    gulp4.0 存在的错误信息 The following tasks did not complete: default,Did you forget to signal async completion?
    高性能前端 art-template 模板
    cookie 详解
    Cross origin requests are only supported for protocol schemes: http, data, chrome,chrome-extension的问题
    jQuery EasyUI 详解
    我的游戏学习日志1——恐龙快打
    我的游戏学习日志2——雪人兄弟
    关于网页导航栏制作的几种方法与常见问题解决(新人向)
    JavaScript基础
    利用CSS3制作网页动画
  • 原文地址:https://www.cnblogs.com/qinlangsky/p/9446462.html
Copyright © 2020-2023  润新知