文件处理

seek和tell是按字节处理,read是按字符

练习题:

写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作
 1 f_name = open(file="test.txt", mode="w", encoding="gbk")
 2 f_name.write("红红火火,恍恍惚惚
哈哈哈哈")
 3 import os
 4 f_name = "test.txt"
 5 f_new_name = "new_test.txt"
 6 old_str = "哈哈哈哈"
 7 new_str = "成龙大哥"
 8 f = open(f_name, mode="r", encoding="gbk")         #打开旧文件
 9 f_new = open(f_new_name, mode="w", encoding="gbk")   #打开新文件
10 
11 for line in f:
12     if old_str in line:        #如果找到了旧字符串,就将其替换成新的
13         new_line = line.replace(old_str, new_str)
14     else:
15         new_line = line      #其他字符串不变
16     f_new.write(new_line)    #将修改的内容加入新文件
17 
18 f.close()
19 f_new.close()
20 os.replace(f_new_name, f_name)      #替换名字
写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

  

 1 dic = {"k1": "v1v1", "k2": [11, 22, 33, 44]}
 2 def check_func(a):    # 定义形参
 3     li = []       #创建空列表
 4     for v in a.values():           # 把v代入到字典值里循环
 5         if len(v) > 2:           #判断,把符合要求的值加入到li
 6             li.append(v[0:2])
 7         else:
 8             continue       #跳出这次循环
 9     return li
10 a = check_func(dic)    #调用函数
11 print(a)
原文地址:https://www.cnblogs.com/joneylulu/p/10229960.html