[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 ...
随机推荐
- 【IT笔试面试题整理】链表
如何准备 Linked list questions are extremely common These can range from simple (delete a node ina linke ...
- SpringBoot学习(二)——Spring的Java配置方式
Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 一.@Configuration 和 @Bean Spring的Java配置方式是通过@Configuration和@Bean ...
- PHP7最高性能优化建议
PHP7已经发布了, 作为PHP10年来最大的版本升级, 最大的性能升级, PHP7在多放的测试中都表现出很明显的性能提升, 然而, 为了让它能发挥出最大的性能, 我还是有几件事想提醒下. PHP7 ...
- MyBatis原理第四篇——statementHandler对象(sqlSession内部核心实现,插件的基础)
首先约定文中将的四大对象是指:executor, statementHandler,parameterHandler,resultHandler对象.(为了方便下面的文章说道四大对象就专指它们) 讲到 ...
- C# Web 数据注解Data Annotations、模型状态ModelState、数据验证
C#中的模型状态与数据注解,为我们提供了很便利的请求数据的验证. 1. ModelState ModelState在进行数据验证的时候很有用的,它是: 1)验证数据,以及保存数据对应的错误信息. 2) ...
- OpenDigg iOS开源项目月报201704
由OpenDigg 出品的iOS开源项目月报第一期来啦.我们的iOS开源月报集合了OpenDigg一个月来新收录的优质的iOS开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. Transi ...
- Effective C++ 50条款
条款1:尽量用const和inline而不用#define 以const 行使常量折叠,用inline 代替常用操作的宏定义,而且库里面有很多常用函数可用.当然不能抛弃宏,宏还是很有用滴.偶最近才发现 ...
- 基于Spring Security2与 Ext 的权限管理设计与兑现
基于Spring Security2与 Ext 的权限管理设计与实现 一.Spring Security介绍 Spring Security的前身Acegi,其配置及使用相对来说复杂一些,因为要配置的 ...
- 基于hive的日志分析系统
转自 http://www.cppblog.com/koson/archive/2010/07/19/120773.html hive 简介 hive 是一个基于 ...
- 【JVM】1、java虚拟机参数-X 与 -XX的区别
Options that begin with -X are non-standard (not guaranteed to be supported on all VM implementation ...