[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 ...
随机推荐
- Spring总结 2.装配bean
本随笔内容要点如下: bean的作用域 占位符 一.bean的作用域 在默认情况下,Spring管理的bean的单例的.也就是说,无论注入多少次,都是同一个bean对象.一般情况下,单例模式是足以应付 ...
- Java并发编程-synchronized指南
在多线程程序中,同步修饰符用来控制对临界区代码的访问.其中一种方式是用synchronized关键字来保证代码的线程安全性.在Java中,synchronized修饰的代码块或方法不会被多个线程并发访 ...
- springmvc json 406
spring 4.0 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="ht ...
- OSI与TCP/IP模型
1 OSI参考模型 谈到网络不能不谈OSI参考模型,虽然OSI参考模型的实际应用意义不是很大,但其的确对于理解网络协议内部的运作很有帮助,也为我们学习网络协议提供了一个很好的参考.在现实网络世界里,T ...
- 记一次Java AES 加解密 对应C# AES加解密 的一波三折
最近在跟三方对接 对方采用AES加解密 作为一个资深neter Ctrl CV 是我最大的优点 所以我义正言辞的问他们要了demo java demo代码: public class EncryptD ...
- 呼叫WCF Service的方法出现Method not allowed异常
asp.net mvc练习程序,经常性在家里电脑,笔记本或是公司的电脑之间拷贝与粘贴,如果忘记携带最新的练习程序,一些小功能只能重新写了.如前一篇<ASP.NET MVC呼叫WCF Servic ...
- 自动加载的iframe高度自适应
动态产生iframe,自动加载至body中,还有一个功能就是iframe的高度自适应,下面代码测试于IE和Firefox,Chrome:
- JavaScript学习总结(五)——jQuery插件开发与发布
jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...
- UML,构件图与部署图
一.构件图概述 1.概念 用来显示一组构件之间的组织及其依赖关系 2.基本元素 (1)构件:定义了良好接口的物理实现单元. ● 配置构件:形成可执行文件的基础,如:动态链接库(DLL).ActiveX ...
- 使用cglib实现数据库框架的级联查询
写在前面的 这一章是之前写的<手把手教你写一个Java的orm框架> 的追加内容.因为之前写的数据库框架不支持级联查询这个操作,对于有关联关系的表用起来还是比较麻烦,于是就准备把这个功能给 ...