day13

f.seek的应用

 1 import time
 2 
 3 with open('access.log', mode='rb') as f:
 4     # 1、将指针跳到文件末尾
 5     # f.read() # 错误
 6     f.seek(0,2)
 7 
 8     while True:
 9         line=f.readline()
10         if len(line) == 0:
11             time.sleep(0.3)
12         else:
13             print(line.decode('utf-8'),end='')

文件修改的两种方式

 1 # with open('a.txt',mode='r+t',encoding='utf-8') as f:
 2 #     f.seek(9,0)
 3 #     f.write('<男妇女主任>')
 4 
 5 
 6 # 文件修改的两种方式
 7 # 方式一:文本编辑采用的就是这种方式
 8 # 实现思路:将文件内容发一次性全部读入内存,然后在内存中修改完毕后再覆盖写回原文件
 9 # 优点: 在文件修改过程中同一份数据只有一份
10 # 缺点: 会过多地占用内存
11 with open('c.txt',mode='rt',encoding='utf-8') as f:
12     res=f.read()
13     data=res.replace('alex','dsb')
14     print(data)
15 
16 with open('c.txt',mode='wt',encoding='utf-8') as f1:
17     f1.write(data)
18 
19 
20 # 方式二:
21 import os
22 # 实现思路:以读的方式打开原文件,以写的方式打开一个临时文件,一行行读取原文件内容,修改完后写入临时文件...,删掉原文件,将临时文件重命名原文件名
23 # 优点: 不会占用过多的内存
24 # 缺点: 在文件修改过程中同一份数据存了两份
25 with open('c.txt', mode='rt', encoding='utf-8') as f, \
26         open('.c.txt.swap', mode='wt', encoding='utf-8') as f1:
27     for line in f:
28         f1.write(line.replace('alex', 'dsb'))
29 
30 os.remove('c.txt')
31 os.rename('.c.txt.swap', 'c.txt')
32 
33 
34 
35 #
36 # f = open('a.txt')
37 # res = f.read()
38 # print(res)

函数基本使用

  1 1、什么是函数
  2     函数就相当于具备某一功能的工具
  3     函数的使用必须遵循一个原则:
  4         先定义
  5         后调用
  6 2、为何要用函数
  7     1、组织结构不清晰,可读性差
  8     2、代码冗余
  9     3、可维护性、扩展性差
 10 
 11 3、如何用函数
 12         先定义
 13             三种定义方式
 14         后调用
 15             三种调用方式
 16 
 17         返回值
 18             三种返回值的形式
 19 
 20 """
 21 # 一、先定义
 22 # 定义的语法
 23 '''
 24 def 函数名(参数1,参数2,...):
 25     """文档描述"""
 26     函数体
 27     return 值
 28 '''
 29 
 30 
 31 # 形式一:无参函数
 32 # def func():
 33 #     # x
 34 #     # print(
 35 #     print('哈哈哈')
 36 #     print('哈哈哈')
 37 #     print('哈哈哈')
 38 
 39 # 定义函数发生的事情
 40 # 1、申请内存空间保存函数体代码
 41 # 2、将上述内存地址绑定函数名
 42 # 3、定义函数不会执行函数体代码,但是会检测函数体语法
 43 
 44 # 调用函数发生的事情
 45 # 1、通过函数名找到函数的内存地址
 46 # 2、然后加口号就是在触发函数体代码的执行
 47 # print(func)
 48 # func()
 49 
 50 # 示范1
 51 # def bar(): # bar=函数的内存地址
 52 #     print('from bar')
 53 #
 54 # def foo():
 55 #     # print(bar)
 56 #     bar()
 57 #     print('from foo')
 58 #
 59 # foo()
 60 
 61 # 示范2
 62 # def foo():
 63 #     # print(bar)
 64 #     bar()
 65 #     print('from foo')
 66 #
 67 # def bar():  # bar=函数的内存地址
 68 #     print('from bar')
 69 #
 70 # foo()
 71 
 72 # 示范3
 73 # def foo():
 74 #     # print(bar)
 75 #     bar()
 76 #     print('from foo')
 77 #
 78 # foo()
 79 #
 80 # def bar():  # bar=函数的内存地址
 81 #     print('from bar')
 82 
 83 # 形式二:有参函数
 84 # def func(x,y): # x=1  y=2
 85 #     print(x,y)
 86 # func(1,2)
 87 
 88 # 形式三:空函数,函数体代码为pass
 89 def func(x, y):
 90     pass
 91 
 92 
 93 # 三种定义方式各用在何处
 94 # 1、无参函数的应用场景
 95 # def interactive():
 96 #     name=input('username>>: ')
 97 #     age=input('age>>: ')
 98 #     gender=input('gender>>: ')
 99 #     msg='名字:{} 年龄:{} 性别'.format(name,age,gender)
100 #     print(msg)
101 #
102 # interactive()
103 # interactive()
104 # interactive()
105 # interactive()
106 
107 # 2、有参函数的应用场景
108 # def add(x,y): # 参数-》原材料
109 #     # x=20
110 #     # y=30
111 #     res=x + y
112 #     # print(res)
113 #     return res # 返回值-》产品
114 #
115 # # add(10,2)
116 # res=add(20,30)
117 # print(res)
118 
119 # 3、空函数的应用场景
120 # def auth_user():
121 #     """user authentication function"""
122 #     pass
123 #
124 # def download_file():
125 #     """download file function"""
126 #     pass
127 #
128 # def upload_file():
129 #     """upload file function"""
130 #     pass
131 #
132 # def ls():
133 #     """list contents function"""
134 #     pass
135 #
136 # def cd():
137 #     """change directory"""
138 #     pass
139 
140 
141 # 二、调用函数
142 # 1、语句的形式:只加括号调用函数
143 # interactive()
144 # add(1,2)
145 
146 # 2、表达式形式:
147 # def add(x,y): # 参数-》原材料
148 #     res=x + y
149 #     return res # 返回值-》产品
150 # 赋值表达式
151 # res=add(1,2)
152 # print(res)
153 # 数学表达式
154 # res=add(1,2)*10
155 # print(res)
156 
157 # 3、函数调用可以当做参数
158 # res=add(add(1,2),10)
159 # print(res)
160 
161 # 三、函数返回值
162 # return是函数结束的标志,即函数体代码一旦运行到return会立刻
163 # 终止函数的运行,并且会将return后的值当做本次运行的结果返回:
164 # 1、返回None:函数体内没有return
165 #             return
166 #             return None
167 #
168 # 2、返回一个值:return 值
169 # def func():
170 #     return 10
171 #
172 # res=func()
173 # print(res)
174 
175 # 3、返回多个值:用逗号分隔开多个值,会被return返回成元组
176 def func():
177     return 10, 'aa', [1, 2]
178 
179 res = func()
180 print(res, type(res))

 

posted @ 2021-09-18 15:06  likl-  阅读(30)  评论(0)    收藏  举报