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(文件处理)的更多相关文章

  1. Mapreduce的文件和hbase共同输入

    Mapreduce的文件和hbase共同输入 package duogemap;   import java.io.IOException;   import org.apache.hadoop.co ...

  2. mapreduce多文件输出的两方法

    mapreduce多文件输出的两方法   package duogemap;   import java.io.IOException;   import org.apache.hadoop.conf ...

  3. 01.SQLServer性能优化之----强大的文件组----分盘存储

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...

  4. SQL Server 大数据搬迁之文件组备份还原实战

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搬迁步骤(Procedure) 搬迁脚本(SQL Codes) ...

  5. SQLSERVER将一个文件组的数据移动到另一个文件组

    SQLSERVER将一个文件组的数据移动到另一个文件组 有经验的大侠可以直接忽视这篇文章~ 这个问题有经验的人都知道怎麽做,因为我们公司的数据量不大没有这个需求,也不知道怎麽做实验 今天求助了QQ群里 ...

  6. SQL Server中的高可用性(2)----文件与文件组

        在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允 ...

  7. C# ini文件操作【源码下载】

    介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivateProfileString()函 ...

  8. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  9. 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新

    上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...

随机推荐

  1. BZOJ - 2783 树

    数列 提交文件:sequence.pas/c/cpp 输入文件: sequence.in 输出文件: sequence.out 问题描述: 把一个正整数分成一列连续的正整数之和.这个数列必须包含至少两 ...

  2. Comparable和Comparator 是什么以及区别

    一.Comparable和Comparator Comparable可以认为是一个内比较器,实现了Comparable接口的类,类的实例与实例直接可以比较,依赖compareTo方法的实现,compa ...

  3. Vue部分编译不生效,解决Vue渲染时候会闪一下

    0828自我总结 Vue部分编译不生效,解决Vue渲染时候会闪一下 一.Vue编译不生效 在标签里添加v-pre <script src="vue.js"></s ...

  4. powerCat进行常规tcp端口转发

    实战中,我们也会遇到需要我们进行端口转发的情况,比如已经拿下的目标机1是在dmz区,而目标1所在内网的其他目标只能通过目标1去访问,这时候我们就需要端口转发或者代理来进行后渗透.这次就要介绍一个加强版 ...

  5. 浏览器渗透框架BeEF使用笔记(二)

    0x03 常用模块 1-信息收集 可以收集到例如 浏览器名称版本 浏览器用户版本 插件(包括Java,ActiveX,VBS,Flash……) 窗口大小 1)details面板收集 (2)插件收集信息 ...

  6. ssh-keygen创建证书

    ssh-keygen安装请参考以下内容:https://blog.csdn.net/a419419/article/details/80021684 (可能我已经安装过git了,所以不需要安装,具体细 ...

  7. php在哪里写代码?

    php在哪里写代码? php可以在PhpStorm中写代码. PhpStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,旨在提高用户效率,可深刻理解用户的编码,提供智能代码 ...

  8. 1.7.3.1版本ride乱码的解决方法

    现象: 解决方式: 修改文件\Python36\Lib\site-packages\robotide\contrib\testrunner\testrunner.py 将latin1修改为mbcs 然 ...

  9. HDFS概述(一)

    HDFS概述(一) 1. HDFS产出的背景及定义 1.1 HDFS产生的背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需 ...

  10. 17.Linux高可用之Keepalived

    1.什么是高可用,为什么要设计高可用? 两台机器启动着相同的业务系统,当有一台机器宕机,另外一台服务器能快速的接管,对于访问的用户是无感知的. 减少系统不能提供服务的时间. 2.高可用使用什么工具来实 ...