码迷,mamicode.com
首页 > 编程语言 > 详细

python脱产4期内容整理NO.9

时间:2018-09-23 13:43:51      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:移动   扩展   返回值   可扩展性   lse   可扩展   password   距离   wap   

#前提:文件内指针的移动是Bytes为单位的,唯独t模式下的read读取内容个数是以字符为单位
#f.read(3)
# with open(‘a.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f:
#   data=f.read(3)
 #   print(data)
# with open(‘a.txt‘,mode=‘rb‘) as f:
#     data=f.read(3)
#     print(data.decode(‘utf-8‘))
# f.seek(指针移动的字节数,模式控制): 控制文件指针的移动
# 模式控制:
# 0: 默认的模式,该模式代表指针移动的字节数是以文件开头为参照的
# 1: 该模式代表指针移动的字节数是以当前所在的位置为参照的1
# 2: 该模式代表指针移动的字节数是以文件末尾的位置为参照的
# 强调:其中0模式可以在t或者b模式使用,而1跟2模式只能在b模式下用
#f.tell()查看文件指针当前距离文件开头的位置
# 0模式详解
# with open(‘a.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f:
#     f.seek(4,0)
#     print(f.tell())
#     print(f.read())
# with open(‘a.txt‘,mode=‘rb‘) as f:
#     # f.seek(4,0)
#     f.seek(2,0)
#     print(f.tell())
#     print(f.read().decode(‘utf-8‘))

# with open(‘a.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f:
#     f.seek(5,0)
#     print(f.read())

# 1模式详解
# with open(‘a.txt‘,mode=‘rb‘) as f:
#     f.seek(3,1)
#     print(f.tell())
#     f.seek(4,1)
#     print(f.tell())
#     print(f.read().decode(‘utf-8‘))
# 2模式详解
# with open(‘a.txt‘,mode=‘rb‘) as f:
#     f.seek(-9,2)
#     data=f.read()
#     print(data.decode(‘utf-8‘))
# tail -f access.log
with open(‘access.log‘,mode=‘rb‘) as f:
    f.seek(0,2)
    while True:
        line=f.readline()
        if len(line) == 0:
            # 没有内容
            continue
        else:
            print(line.decode(‘utf-8‘),end=‘‘)
 
# 须知一:
# 硬盘空间无法修改,硬盘中的数据更新都是用新的内容覆盖旧的内容
# 内存控制可以修改
# with open(‘a.txt‘,‘r+t‘,encoding=‘utf-8‘) as f:
#     f.seek(4,0)
#     print(f.tell())
#     f.write(‘我擦嘞‘)
# 须知二:
# 文件对应的是硬盘空间,硬盘不能修改应为文件本质也不能修改,
# 我们看到文件的内容可以修改,是如何实现的呢?
# 大的的思路:将硬盘中文件内容读入内存,然后在内存中修改完毕后再覆盖回硬盘
# 具体的实现方式分为两种:
# 1. 将文件内容发一次性全部读入内存,然后在内存中修改完毕后再覆盖写回原文件
# 优点: 在文件修改过程中同一份数据只有一份
# 缺点: 会过多地占用内存
# with open(‘db.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f:
#     data=f.read()
# with open(‘db.txt‘,mode=‘wt‘,encoding=‘utf-8‘) as f:
#     f.write(data.replace(‘kevin‘,‘SB‘))
# 2. 以读的方式打开原文件,以写的方式打开一个临时文件,一行行读取原文件内容,修改完后写入临时文件...,删掉原文件,将临时文件重命名原文件名
# 优点: 不会占用过多的内存
# 缺点: 在文件修改过程中同一份数据存了两份
import os
with open(‘db.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as read_f,\
        open(‘.db.txt.swap‘,mode=‘wt‘,encoding=‘utf-8‘) as wrife_f:
    for line in read_f:
        wrife_f.write(line.replace(‘SB‘,‘kevin‘))
os.remove(‘db.txt‘)
os.rename(‘.db.txt.swap‘,‘db.txt‘)
 
三、函数
1.什么是函数
        具备某一功能的工具
        事先准备工具的过程函数的定义
        遇到应用场景,拿来就用函数的调用
 
        函数分两大类
               1.内置函数
               2.自定义函数
 
2.为何要用函数
      1.代码冗长
      2.可读性差
      3.可扩展性差
 
3.如何用函数
      原则:必须先定义后调用
      定义函数的语法:
               def 函数名(参数1、参数2....)
                          """文档注释“”“
                          code1
                          code2
                          code3
                          ......
                          return 返回值
        调用函数的语法:
                函数名(值1,值2,....)
def login():
      uname=input(‘请输入用户名>>:‘).strip()
      pwd=input(‘password>>:‘).strip()
       if uname ==‘egon‘and pwd==‘123‘:
            print(‘login successfull‘)
      else:
           print(‘user or password error‘)
          return False
     print(login)
    login()
 
def max(x,y)
        x=10
        y=10
    if x>y:
           return x
     else:
          return y
 
res=max2(3.1,2.3)
print(res*12)
 
        

python脱产4期内容整理NO.9

标签:移动   扩展   返回值   可扩展性   lse   可扩展   password   距离   wap   

原文地址:https://www.cnblogs.com/wuzhengzheng/p/9692368.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!