Python编程基础2

文件对象:
open内建函数:通过了初始化输入、输出(I/O)操作的通用接口,成功打开文件后会返回一个文件对象,否则引发错误。file_object=open(file_name,mode=‘r’):file_name:表示我们要打开文件的路径;mode以什么样的方式打开文件。
close函数关闭文件
文件对象访问模式:
r(read):以读方式打开(文件不存在则报错)
w(write):以写方式打开(文件存在则清空,不存在则创建,覆盖写)
a(append):以追加模式打开(必要时创建新文件)
b(byte):以二进制模式打开(配合rb、wb操作)
文件输入:
文件指针:文件指针标记从那个位置开始读取数据,第一次打开文件时,通常文件指针会指向文件的开始位置,当执行了read方法后,文件指针会移动到读取内容的末尾。重新打开文件时,文件指针会重新指向文件的最开始位置。
3ca4897b46034d10a8deaefd1be7dc95.png
d6873b59e6d24495a57a0a9d23efd811.png
2708eae2b6354931a04c0703cfc153e8.png
readline按照行数读取文件内容
e391eb5f130d4026a94063b20e7e890e.png
e76ccc20d31549faa6e71c380dbb0a06.png
readlines把文件的所有的内容按行读取出来,放在列表中
7b9cacea381e4c67a05b5f180305d16b.png
bf0ff72ee9e048979d0e90631a9a5ec5.png
当文件比较大时使用read读取就会把读取的内容放在内存中,内存有可能读取不下负载严重,此时使用readline一行一行的读取到内存中
读取大文件姿势,使用readline不知道具体执行几次,此时就需要循环
796169457d214e409ed93ab52d0122d1.png
38c584ae45524b328034bed8dd48d268.png
文件输出:
write()内建方法功能与read()和readline()相反,它把含有文本数据或二进制数据块的字符串写入到文件中,写入文件时,不会自动添加行结束标志,需要程序员手工输入(\n)。
0d63910ee95a41e4b6eab34be2623819.png
52f3cca4b72f4d7f8e390fef03f80d99.png
writelines:和readlines一样,writelines()方法是针对列表的操作,它接受一个字符串列表作为参数,将它们写入文件,行结束符并不会被自动加入,如果需要必须在调用writelines()前给每行结尾加上结束符。
8ce0b7389a684ec5bd9ec5f7d04de028.png
1088001ec73741cc91105edd9eac8916.png
练习:模拟cp操作
创建cp.py文件,将/usr/bin/ls拷贝到/tmp/myls目录下,不要修改原始文件
/usr/bin/ls是二进制文件,所以需要使用rb、wb
3329b8e7a3544902a1ba09355f84c43c.png
6a4821c3d7e7447b89b55deb05d2cf56.png
with子句:用来简化代码,在将打开文件的操作放在with语句中,代码块结束后,文件将自动关闭。
8734d2014cbf4c2189767f888f426f50.png
1e5588cb65ce453eb808f851576d42fa.png
函数:对程序逻辑进行结构化或过程化的一种编程方法。把具有独立功能的代码快组织为一个小模块,在需要的时候调用。函数的使用包含两个步骤:定义函数:封装独立的功能。调用函数:享受封装的成果
创建函数:使用def语句来创建,标题行由def关键字,函数的名字,以及参数的集合(可有可没有)组成,def子句的剩余部分包括了一个虽然可选但是强烈推荐的文档字串,和必须的函数体。
def function(形式参数):
        代码块
调用函数:同大多数语言相同,Python用一对圆括号调用函数,如果没有加圆括号,只是对函数的引用。
函数的返回值:多数情况下,函数并不直接输出数据,而是向调用者返回值,函数的返回值使用return关键字,没有return函数默认返回None。
函数参数:----形式参数:函数定义时,紧跟在函数名后(圆括号内)的参数被称为形式参数,简称形参,由于它不是实际存在的变量,所以又称虚拟变量。---实际参数:在主调函数中调用一个函数时,函数名后面的圆括号中的参数称为‘实际参数’,简称实参。
定义一个函数get_sum计算两个数的和
b6eafd95e92144c481de203e235697fa.png
8dd7c62d61cd4e07aded217a03e3384a.png
当参数传递少一个参数时就会报错
94c872b62c104a6d8f67d57d57141b04.png
804669708ade493981e5d2c1de4fe1b9.png
默认参数:声明了默认值的参数,不向该参数传入值也是允许的,没有手动给形参赋值就使用默认值。当有实际参数默认参数就失效了
72075a72540841faaec77b287df38a07.png
f52d418014b24c16baa6ea11d6c5b91d.png
当给形式参数添加默认值时,有默认值的参数必须放到没有默认值参数的后面
d323875c46554f62bad8fa7f2db9cd27.png
位置参数:使用sys模块的argv列表接受。要在终端中执行
b48ea65d1253444197ccebdb0e7d85ed.png
81e81c2c875c46f6a0d2d6c80c5ad808.png
修改cp的程序,将源文件和目标文件通过参数进行传递
7ff0a053eb8b4f1881e7231db82c29c6.png
55d67d6c842c4b55abf9f191461bc654.png
函数的返回值:多数情况下,函数并不直接输出数据,而是向调用者返回值。函数的返回值使用return关键字,没有return的话函数默认返回None。
a998524ec29c46d0a025935974e58b12.png
8393abfea7f04f0a904c05b7820fab3a.png
练习:斐波那契函数
1209278da9ed4015865e86c0832230e1.png
1713185df7bd41d7b170349d6266a9d1.png
模块:模块是从逻辑上组织Python代码的形式,当代码量变得相当大的时候,最好把代码分成一些有组织的代码段,前提是保证它们的彼此互交,这些代码片段相互间有一定的联系,可能是一个包含数据成员和方法的类,也可能是一组相关但彼此独立的操作函数,一个.py文件就是一个Python模块。
导入模块(import):使用import导入模块,模块属性通过‘模块名.属性(变量)’的方式调用,模块函数通过‘模块名.函数名’的方式调用。导入模块时该模块的代码会被执行一次
b27edda54d924aa7b722421b9df57244.png
模块加载:一个模块只被加载一次,无论导入多少次,如果两个文件相互导入防止了无限的相互加载,模块加载时,顶层的代码会自动执行
模块导入的特性:模块具有一个__name__特殊属性,当模块文件直接执行时,__name__的值为'__main__',当模块被另一个文件导入时,__name__的值就是该模块的名字
8ff8afa46e4b4b5b855fe3641b0b8cac.png
c7b205e89b0a4e46a9595763db04788f.png
当__name__ == '__main__'时执行自己的函数
f4499b886edd40c4a33fedc563775fde.png
练习:编写一个能够生成8位随机密码的程序
使用random中的choice随机选择字母数字,改善程序用户可以自己决定生成多少位的密码
string模块中的string.digits和string.ascii_letters能够提供数字和字母
ed86a41fdd1d40298568c339bfa77815.png
f57dc26c918e43ce9f28b82f80cf8d83.png
3ce4d1e6ad0a469d8b93aebec71e031b.png
time模块:
时间的表达方式:时间戳timestamp:表示的是从1970年1月1日00:00开始按秒计算的偏移量。UTC (Coordinated Universal Time,世界协调时):即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。结构化时间(struct_time):由9个元素组成。
time.time模块:返回当前的时间戳
time.sleep模块:线程推迟指定的时间运行,单位为妙。
df75892570aa46f08640d102486c36f0.png
8fe178d976a04e0999d29142823fd6be.png
time.localtime(secs):将一个时间戳转换为当前时区的结构化时间。
time.gmtime(secs):和localtime方法类似,gmtime是将一个时间戳转换为UTC时区(0时区)的结构化时间。
983cc3ec6e9145a79c9347d95262bce8.png
925c2fe0e465419c92afabc2c7234a09.png
可以使用数组下标、切片和具体名称的方式来获取具体的结构化时间
234e4a5f293b45aa87621a5ea6b3a464.png
106a3f8af045457181cd3b63658e8419.png
localtime的hour会增加8小时
83b8dfc166744f6ba123e6ae3e993460.png
4c68cf6a7c2b48d28a19aa2156f48dae.png
time.mktime模块:将一个结构化时间转换为时间戳
49ccf68e8bad4f538a46c962a3bfdd15.png
fb02e7a00d0545679e184c1dc1daa348.png
time.strftime模块:将结构化时间转换为时间字符串
143e5204971a46f3aeec2806de288671.png
413b9c8c52ca451aadc70547dff3e48f.png
time.strptime模块:将时间字符串转换为结构化时间
36f32a72d87046629ddda990753652ac.png
edb8813fb36d42fc92f71e538274e9eb.png
结构化时间可以比较,越靠后的时间越大。
练习:取出指定时间段的日志
有一个日志文件,按时间先后顺序记录日志,给定时间范围(如9:00到12:00)取出该范围内的日志,自定义日志文件myweb,log
ea3facfc0caf46098c9b286cad1e9dd3.png
8c5b0a3990ae40a389d73617fd347d66.png
2d26dc8c13434ded9b20597b549a4884.png
139cbacae971466e93abde08b604588f.png
链式赋值、多元赋值、交换变量
80f709465676442787637fde3a75ee4a.png
e56bc7d01dfe43c78fc6d66d23c8a5d6.png
keyword模块:查询关键字
fd02422dac204253946580395bddd869.png
查看内建模块,选中print函数,按Ctrl鼠标点击。该builtins.py会在Python环境启动时自动导入该模块
900ef4f428204fbebab059ea2db56495.png
字符串:
字符串的拼接
d1ac5b1f3f0c4e1788b0370e9afda521.png
88ab007470a34bc783e1408e8c3c73ff.png
字符函数
506ea9a56d614fa6a7db89389864e61b.png
07521b3992a648e5b6efffd5955aadc9.png

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值