[Python_3] Python 函数 & IO
0. 说明
Python 函数 & IO 笔记,基于 Python 3.6.2
参考
Python: read(), readline()和readlines()使用方法及性能比较
1. 函数
# -*-coding:utf-8-*- """
函数
""" # 定义函数,有return语句,否则返回None
def add(a, b):
# 有返回语句
print("a : " + str(a))
print("b : " + str(b))
return a + b print(add(2, 3)) """
定义函数,有return语句,否则返回None
*a : 变长参数
*args : 固定写法,表示当前位置上任何多个无名参数,它是一个tuple
**kwargs: 固定写法,关键字参数,它是一个dict
此种方式类似于Java 的反射中的 Method 类,能够提取函数的运行时信息。
""" def f1(*a):
for e in a:
print(e) # 调用函数,传递变长参数
f1((1, 2, 3, 4, 5)) def f2(a, b, c, *args):
print(str(args)) f2(1, 2, 3, 4, 5) def foo(x, *args, **kwargs):
print('args=', args)
print('kwargs=', kwargs)
print('**********************') foo(1, 2, 3, 4)
foo(1000, a=1, b=2, c=3)
foo(1, 2, a=4, b=5, c=100)
2. IO
# -*-coding:utf-8-*- """
IO
""" """
文件读操作
"""
# 一次性读取所有行文件
f1 = open("e:/data.txt")
lines = f1.readlines()
for l in lines:
print(l, end="")
f1.close() # 每次读取下一行文件
print()
print("=============")
f2 = open("e:/data.txt")
while (True):
# 读取第一行
line = f2.readline()
while line is not None and line != "":
print(line, end="")
# 读取下一行
line = f2.readline()
else:
break
f2.close() """
None,类似于 Java 中 null 的表示不存在。
"""
x = None
print(x) """"
文件写操作
写入文件 mode=r | wa |
w : overwrite 覆盖模式
a : append 追加模式
"""
f = open("e:/data2.txt", mode="a")
f.write("i am panda")
f.close() """
文件重命名
源文件必须存在
"""
import os
os.renames("e:/data2.txt", "e:/data3.txt") """
删除文件
"""
import os
os.remove("e:/data3.txt") """
创建 & 删除空目录
"""
import os
# os.mkdir("e:/testdir")
os.removedirs("e:/testdir") """
列出目录的元素
"""
import os
files = os.listdir("d:/")
for i in files:
print(i)
3. 主函数运行
# -*-coding:utf-8-*- """
导入 Python 模块,每个 Python 文件就是一个模块
判断当前文件是否直接运行,还是被其他引用
直接运行的时候值为"__main__"
"""
import test6_function
test6_function.add(1, 2)
print(__name__) if __name__ == "__main__":
print(100)
4. 参数提取
模拟参数设置

"""
参数提取
通过 sys 的 argv 属性提取参数列表
"""
# 提取脚本的参数
import sys r = sys.argv
print(r[0])
print(r[1])
结果如下,第一个参数为脚本

5. 反射访问
"""
反射访问
"""
s = "xxx"
s.__len__()
# 返回对象的指定属性,没有的话,可以指定默认值
r1 = getattr(s, "len", "no this attr")
r2 = getattr(s, "__len__", "no this attr")
print(r1)
print(r2)
6. 日期函数
"""
时间函数
"""
# 导入时间库
import datetime
datetime.datetime.now()
print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
[Python_3] Python 函数 & IO的更多相关文章
- Python函数讲解
Python函数
- Python函数参数默认值的陷阱和原理深究"
本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...
- Python笔记-IO编程
IO在计算机中是指input和output(数据输入与输出),涉及到数据交换(磁盘.网络)的地方就需要IO接口. 输入流input stream是指数据从外面(磁盘.网络服务器)流入内存:输出流out ...
- {python之IO多路复用} IO模型介绍 阻塞IO(blocking IO) 非阻塞IO(non-blocking IO) 多路复用IO(IO multiplexing) 异步IO(Asynchronous I/O) IO模型比较分析 selectors模块
python之IO多路复用 阅读目录 一 IO模型介绍 二 阻塞IO(blocking IO) 三 非阻塞IO(non-blocking IO) 四 多路复用IO(IO multiplexing) 五 ...
- python函数基础(3)
第1章 编码补充 1.1 字符编码对照表 1.2 编码特性 1.4 encode/decode第2章 集合 2.1 特点 2.2 [重点]作用:去重 2.3 常用操作 2.3.1 删除 2.3.2 交 ...
- python异步IO编程(一)
python异步IO编程(一) 基础概念 协程:python generator与coroutine 异步IO (async IO):一种由多种语言实现的与语言无关的范例(或模型). asyncio ...
- Python函数的默认参数的设计【原创】
在Python教程里,针对默认参数,给了一个“重要警告”的例子: def f(a, L=[]): L.append(a) return L print(f(1)) print(f(2)) print( ...
- python异步IO编程(二)
python异步IO编程(二) 目录 开门见山 Async IO设计模式 事件循环 asyncio 中的其他顶层函数 开门见山 下面我们用两个简单的例子来让你对异步IO有所了解 import asyn ...
- Python函数参数和注解是什么
四种参数 Python函数func定义如下: def func(first, *args, second="Hello World", **kwargs): print(first ...
随机推荐
- Android so 文件进阶<三> so文件的简单加密
0x00 前言 之前的两篇文章从链接视图和执行视图分析了elf文件的大致结构,这篇文章主要内容是对于so文件进行简单的加密工作,针对Ida等静态分析工具的分析,一旦开始动态调试就应该很容易就可以du ...
- linux下更改时区
起因: 装系统时一走神把时区选错了,导致时间不正确,但是又不想重装,所以找了一下解决方法. 解决方案: 我的环境时这样的,其他的环境没试过. [root@werserver01 ~]# cat /et ...
- Java并发编程-ReentrantLock源码分析
一.前言 在分析了 AbstractQueuedSynchronier 源码后,接着分析ReentrantLock源码,其实在 AbstractQueuedSynchronizer 的分析中,已经提到 ...
- 微信公众号开发笔记1-获取Access Token
获取你的Access Token a)可以采用网址的形式: 用appid和appsecert获得access token,接口为https://api.weixin.qq.com/cgi-bin/to ...
- 了解java虚拟机—垃圾回收算法(5)
引用计数器法(Reference Counting) 引用计数器的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器减1.只要对象A的引用计数器的 ...
- 面向对象设计模式_生成器模式解读(Builder Pattern)
首先提出一个很容易想到应用场景: 手机的生产过程:手机有非常多的子件(部件),成千上万,不同品牌的手机的生产过程都是复杂而有所区别的,相同品牌的手机在设计上也因客户需求多样化,大到型号,小到颜色,是否 ...
- ZOJ3209(KB3-B DLX)
Treasure Map Time Limit: 2 Seconds Memory Limit: 32768 KB Your boss once had got many copies of ...
- JNDI 与 LDAP
对于众多接口服务.协议.互联网名称,总会遇到感到熟悉,但是时间一长就会忘记,所以还是要自己整理一下,加强记忆,当然最好的方式还是动手实践. JNDI : 全称:JAVA NAMING AND Dire ...
- mysql时间与字符串之间相互转换
1.时间转字符串 DATE_FORMAT(日期,格式字符串) SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); 2.字符串转时间 STR_TO_DATE( ...
- 你不知道的JavasScript上篇·第四章·混合对象·类
一.类的理论 1.类的核心概念:多态 是说父类的通用行为可以被子类用更特殊的行为重写 二.类的机制 1.构造函数 类实例是有一个特殊的类方法构造的,这个方法名通常和类名一致: 类构造函数属于类,构造函 ...