python_day3(文件处理)
1、文件处理
#Author:Elson Zeng
#data = open("test").read()
# f = open("test",'a',encoding='utf-8') #文件句柄 #f = open("test","a",encoding="utf-8") #文件句柄 追加(源文件) #f = open("test","r+",encoding="utf-8") #文件句柄 读写(源文件)
#f = open("test","w+",encoding="utf-8") #文件句柄 写读(新文件)
#f = open("test","wb") #文件句柄 二进制文件
# #a = appen追加 # data = f.read() # # print(data) # # print('data') # f.write("\n我爱你") # f.close() f = open("test",'r',encoding="utf-8") #print(enumerate(f.readlines())) #high bige count = 0 for line in f: #f为一个迭代器 if count == 2 : print("___") print(line.strip()) count += 1 #low loop """ for index,line in enumerate(f.readlines()): print(line.strip()) if index == 1: print("_____") """
#光标位置(按字符计算位置)
print(f.tell())
#光标返回
f.seek(0)
print(f.readline())
#打印文件名
print(f.name)
#实时写入硬盘
f.flush() #截断(字符串)
f.truncate(20)
import sys,time
for i in range(20):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.2)
2、文件增删改
#Author:Elson Zeng f = open("test",'r',encoding="utf-8")
f2 = open("test_modify.txt",'w',encoding="utf-8") for line in f:
if "取离别时的你" in line:
line = line.replace("取离别时的你","取离别时的航健")
f2.write(line)
f.close()
f2.close()
3、字符编码与转发
#Author:Elson Zeng
#python3默认字符编码是unicode
#decode解码(只针对unicode,写现在的类型)
#encode编码(写转换的类型)
s = "你好"
s_to_gbk = s.encode("gbk")
print(s_to_gbk)
print(s_to_gbk.decode("gbk").encode("utf-8"))
4、函数
1.面向对象 ==> 类 ==> class
2.面向过程 ==> 过程 ==> def
3.面向函数编程 ==> 函数==> def
#函数def
def fun1():
#文档介绍
print ("a")
return 0 #过程def
def fun2():
#文档介绍
print("b") x = fun1()
y = fun2()
print("from funt1: %s"%x)
print("from funt2: %s"%y)
函数非固定参数
#*args :接受N个位置参数,装换成元组的方式
def test(*args):
print(args) test(*[12,3]) #**kwargs: 接受N个关键字参数,装换成字典的方式
def test2(**kwargs):
print(kwargs)
print(kwargs['name']) test2(**{'name':"elson",'age':18}) def test3(name,**kwargs):
print(name)
print(kwargs) test3('elson',age=18)
全局变量
school = "1111"
#声明全局变量(字典、列表、类都能在局部改变量)
def test():
global school
school = "Old the boy" test()
print(school)
5、递归
def calc(n):
print(n)
if int(n/2) ==0:
return n
return calc(int(n/2)) calc(10)
递归特性:
1. 必须有一个明确的结束条件
2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少
3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)
python_day3(文件处理)的更多相关文章
- Mapreduce的文件和hbase共同输入
Mapreduce的文件和hbase共同输入 package duogemap; import java.io.IOException; import org.apache.hadoop.co ...
- mapreduce多文件输出的两方法
mapreduce多文件输出的两方法 package duogemap; import java.io.IOException; import org.apache.hadoop.conf ...
- 01.SQLServer性能优化之----强大的文件组----分盘存储
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...
- SQL Server 大数据搬迁之文件组备份还原实战
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搬迁步骤(Procedure) 搬迁脚本(SQL Codes) ...
- SQLSERVER将一个文件组的数据移动到另一个文件组
SQLSERVER将一个文件组的数据移动到另一个文件组 有经验的大侠可以直接忽视这篇文章~ 这个问题有经验的人都知道怎麽做,因为我们公司的数据量不大没有这个需求,也不知道怎麽做实验 今天求助了QQ群里 ...
- SQL Server中的高可用性(2)----文件与文件组
在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允 ...
- C# ini文件操作【源码下载】
介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivateProfileString()函 ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新
上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...
随机推荐
- BZOJ - 2783 树
数列 提交文件:sequence.pas/c/cpp 输入文件: sequence.in 输出文件: sequence.out 问题描述: 把一个正整数分成一列连续的正整数之和.这个数列必须包含至少两 ...
- Comparable和Comparator 是什么以及区别
一.Comparable和Comparator Comparable可以认为是一个内比较器,实现了Comparable接口的类,类的实例与实例直接可以比较,依赖compareTo方法的实现,compa ...
- Vue部分编译不生效,解决Vue渲染时候会闪一下
0828自我总结 Vue部分编译不生效,解决Vue渲染时候会闪一下 一.Vue编译不生效 在标签里添加v-pre <script src="vue.js"></s ...
- powerCat进行常规tcp端口转发
实战中,我们也会遇到需要我们进行端口转发的情况,比如已经拿下的目标机1是在dmz区,而目标1所在内网的其他目标只能通过目标1去访问,这时候我们就需要端口转发或者代理来进行后渗透.这次就要介绍一个加强版 ...
- 浏览器渗透框架BeEF使用笔记(二)
0x03 常用模块 1-信息收集 可以收集到例如 浏览器名称版本 浏览器用户版本 插件(包括Java,ActiveX,VBS,Flash……) 窗口大小 1)details面板收集 (2)插件收集信息 ...
- ssh-keygen创建证书
ssh-keygen安装请参考以下内容:https://blog.csdn.net/a419419/article/details/80021684 (可能我已经安装过git了,所以不需要安装,具体细 ...
- php在哪里写代码?
php在哪里写代码? php可以在PhpStorm中写代码. PhpStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,旨在提高用户效率,可深刻理解用户的编码,提供智能代码 ...
- 1.7.3.1版本ride乱码的解决方法
现象: 解决方式: 修改文件\Python36\Lib\site-packages\robotide\contrib\testrunner\testrunner.py 将latin1修改为mbcs 然 ...
- HDFS概述(一)
HDFS概述(一) 1. HDFS产出的背景及定义 1.1 HDFS产生的背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需 ...
- 17.Linux高可用之Keepalived
1.什么是高可用,为什么要设计高可用? 两台机器启动着相同的业务系统,当有一台机器宕机,另外一台服务器能快速的接管,对于访问的用户是无感知的. 减少系统不能提供服务的时间. 2.高可用使用什么工具来实 ...