zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    java环境变量配置 win7/win8 java配置
    (JSON转换)String与JSONObject、JSONArray、JAVA对象和List 的相互转换
    (yum)更新yum报错:yum makecache: error: argument timer: invalid choice: 'fast' (choose from 'timer')
    (ElasticSearch)中文字符串精确搜索 term 搜不到结果
    (端口)打开阿里云服务组端口和防火墙端口
    (乱码)Spring Boot配置文件出现乱码解决方案
    (特殊字符)url中包含特殊字符导致请求报错的解决方案
    (端口占用)Windows 查看所有端口和PID
    (注释)IDEA快捷键注释不能自动对齐
    (JDK)oracle下载jdk需要注册?
  • 原文地址:https://www.cnblogs.com/qinlangsky/p/9446462.html
Copyright © 2011-2022 走看看