1,理解文件的作用 (文件是連續(xù)的字節(jié)序列)
保存數(shù)據
2,掌握文件的打開和關閉
F = Open(“文件路徑旭绒、名”, “r”, encoding=”utf-8”)
F.close()
3,掌握向文件中寫入數(shù)據的方式
F.write(“[20, 30]”)
4,掌握從文件中讀取數(shù)據的方式
F.read(3)
F.readline()
F.readlines()
5,文件的操作
文件是連續(xù)的字節(jié)序列
文件的作用:保存數(shù)據
文件操作流程:
1履怯、打開文件
2、操作文件
3尼斧、關閉文件
文件操作權限:
r 讀權限 以r權限打開文件霜旧,如果沒有這個文件冯吓,會報錯,如果有這個文件則打開令漂,不會清空數(shù)據
r+ 以可讀可寫的方式打開文件
rb 以二進制方式打開文件膝昆,只讀
rb+ 以二進制方式打開文件,可讀可寫
w 寫權限 以w權限打開文件叠必,如果沒有這個文件荚孵,會自動創(chuàng)建文件,如果有這個文件會清空文件的原有的數(shù)據
w+ 以可讀可寫的方式打開文件
wb 以二進制方式打開文件纬朝,只寫
wb+ 以二進制方式打開文件收叶,可讀可寫
a 追加權限 以a權限打開文件,如果沒有這個文件共苛,會自動創(chuàng)建文件判没,如果有這個文件則打開,不會清空數(shù)據
a+ 以可讀可追加的方式打開文件
ab 以二進制方式打開文件隅茎,只追加
ab+ 以二進制方式打開文件澄峰,可讀可追加
關于read的幾個函數(shù)
f.read() # 可以傳入一個數(shù)字,指定讀取多少位
f.readline() # 讀取一行數(shù)據
f.readlines() # 返回一個列表辟犀,每一行的數(shù)據就是列表中的每一個元素
6,掌握使用os模塊完成對文件的重命名
Import os
Os.rename(舊文件名俏竞,新文件名)
7,掌握使用os模塊刪除一個文件
Os.remove(文件名)
8,掌握使用os模塊完成創(chuàng)建文件夾
Os.mkdir(“文件夾名”)
9,文件和文件夾的操作
import os
os.path.exists("hello02.txt") # 判斷目錄下是否存在 hello02.txt這個文件
os.rename("hello.txt", "hello2.txt") # 重命名
os.remove("sound_backup.mp3") # 刪除某個文件
print(os.getcwd()) # 獲取當前 的操作目錄
os.chdir("../") # 改變 當前的操作目錄,為上一級
os.mkdir("test") # 創(chuàng)建文件夾
os.rmdir("test") # 刪除空的文件夾
print(os.listdir()) # 返回一個列表堂竟,列表里面每一個元素是目錄下所有的文件名和文件夾名
10,lambda表達式(匿名函數(shù))
lambda 本質是一個函數(shù)
定義: lambda 形參: 返回值
調用的格式1:
fn = lambda a: a+2
fn(實參)
調用的格式2:
(lambda a: a+2)(實參)
# 用lambda表達式求兩個數(shù)的和
# fn = lambda a, b: a+b
# print(fn(10, 20))
# print((lambda a, b: a+b)(20, 30))
# 求a和b中的最大值(了解)
# print((lambda a, b: a if a > b else b)(50, 30))
# 不定長參數(shù)的寫法(了解)
# print((lambda *args: args)(10, 20, 30, "abc"))
# (10, 20, 30, '123') 以元組的形式輸出魂毁。
#print((lambda *args, **kwargs: (args, kwargs))(10, 20, 30, "abc", name="python", age=27))
# ((10, 20, 30), {'name': 'python', 'age': 27})
11,(重點)列表推導式
列表推導式(列表生成式)
[返回值 for i in range(1, 6)]
[返回值 for i in range(1, 6) if 條件]
返回值的類型和格式,決定了出嘹,將來列表中每一個元素的類型格式
# lst = [i for i in range(1, 11)] # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 整形—>整形
# lst = [i+2 for i in range(1, 11)] # [3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
# lst = [str(i) for i in range(1, 11)] # ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
# print(lst)
# lst = [i for i in range(1, 21) if i % 2 == 0] # [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
12,集合
特點:
1席楚、元素沒有順序之分(無序性) 不能通過下標來獲取(字典也無序)
2疚漆、沒有重復出現(xiàn)的數(shù)據
作用:
lst = [10, 20, 30, 50, 10]
tup = (10, 20, 30, 50, 10)
# print(list(set(lst))) # 集合的應用: 去重
# print(tuple(set(tup))) # 集合的應用: 去重
13,其他
a +=1與a = a+1 區(qū)別
a +=1與a = a+1等效但不等價
結果相等酣胀,但兩個a所指向的地址空間已經發(fā)生了變化。
a = [10, 20]
# print(id(a))
# a += [30] # 等效于 a = a + 10
# print(id(a)) # 兩個id一致娶聘,a的指向沒有發(fā)生變化
a = [10, 20]
print(id(a))
a = a + [30]
print(id(a)) # 兩個id不一致,a的指向發(fā)生變化了
補充知識點:求兩個數(shù)的最大值
def fn(a, b):
# if a > b:
# return a
# else:
# return b
return a if a > b else b 可以用此代替上面4行
print(fn(10, 20))
相對路徑:
../ 上一級的符號
/ 下一級 (windows)
./ 當前