首页 > 代码库 > Python自动化开发-day01-Python开发基础2-元组、字典、文件操作
Python自动化开发-day01-Python开发基础2-元组、字典、文件操作
学习内容:
1. 元组操作
2. 字典操作
3. 文件操作
4. 深浅copy
1. 元组操作:
元组和列表非常相似,只不过元组不能在原处修改(它是不可变的),并且通常写成圆括号中的一系列项。
# 元组定义(存取方式同列表), 元组只有2个方法:index 和 count names = ("wills","oscar","tom","jerry")
2. 字典操作:
# 字典定义 employees = { "s001":"wills", "s002":"jerry", "s003":"tom" } print(employees) # 增加Key employees["s004"] = "felicity" print(employees) # 修改值 employees["s004"] = "oliver" print(employees) # 查找 if "s001" in employees: print(employees.get("s001")) print(employees.get("s001")) print(employees["s001"]) # 删除 del employees["s002"] employees.pop("s002") employees.popitem() # 随机删除 # 打印key print(employees.keys()) # 打印values print(employees.values()) # 打印items,包含k,v print(employees.items()) # 字典嵌套 names = { "wills":{"sex":"female","job":"devOps","hobby":"running"}, "oscar":{"sex":"male","job":"backenddev","hobby":"smoking"}, "tom":{"sec":"male","job":"dev","hobby":"travel"} } names["oscar"]["hobby"] = "no smoking" print(names) # 字典循环遍历 for k,v in employees.items(): print(k,v) for key in employees: print(key,employees[key]) # 合并(更新了"s001",追加了"s007" employees2 = { "s001":"arrows", "s007":"chenergou" } employees.update(employees2) print(employees)
3. 文件操作
文件操作的流程:
1. 打开文件,得到文件名柄并赋值给一个变量,
2. 通过句柄对文件进行操作
3. 文件关闭
文件的打开模式:
1. r, 只读模式(默认)
2. w, 只写模式(不可读,不存在则创建,存在则删除内容)
3. a, 追加模式(可读,不存在则创建,存在则只追加内容)
"+" 表示可以同时读写某个文件
1. r+, (可读写文件,可读可写可追加)
2. w+, (写读)
3. a+, (同a)
"U"表示在读取时,可以将\r \n \r\n自动转换成\n (与r 或 r+模式同时使用)
"b"表示处理二进制文件(可以与r w a 同时使用)
# 以写模式打开文件 myfile = open("new.txt","w") # 写一行文本 myfile.write("hello world!\n") myfile.write("second line\n") myfile.write("thrid line\n") # 关闭文件 myfile.close() # 以只读模式打开文件 myfile = open("new.txt") # 一次读取一行 print(myfile.readline()) # 一次读取所有行 print(myfile.readlines())
文件修改的两种方式:
1. 一次将文件所有行读入内存变量,然后修改,再写入文件。(缺点是浪费太多内存,不建议)。
2. 一行一行的读取文件,只修改需要修改的行。
# 一行一行的读取文件内容,将thrid改为three myfile = open("new.txt") myfile2 = open("new2.txt","w") for line in myfile: if "thrid" in line: line = line.replace("thrid","three") myfile2.write(line) myfile.close() myfile2.close()
4. 深浅copy
import copy # 数字copy, a = 1 b = a # b只是copy了a的值,所以个修改a的值不会影响b的值。 a =2 print("a= %d , b= %d" %(a,b)) print("#----------------------------------------------") # 浅copy: 对于一维列表,copy的是值;对于二维列表,copy的是引用 names = ["stark","spider",["captain1","captain2","captain3"],"flush","runner","vampire"] names2 = copy.copy(names) # 第一种浅COPY的方式 # names2 = names[:] # 第二种浅COPY的方式 # names2 = list(names) # 第三种浅COPY的方式 names[1] = "Wills.Spider" names[2][0] = "Captain" print("浅COPY:") print("names:",names) print("names2:",names2) print("#----------------------------------------------") # 深copy: 对于一维列表,copy的是值;对于二维列表,copy的也是值。 names = ["stark","spider",["captain1","captain2","captain3"],"flush","runner","vampire"] names2 = copy.deepcopy(names) names[1] = "Wills.Spider" names[2][0] = "Captain" print("浅深COPY:") print("names:",names) print("names2:",names2) print("#----------------------------------------------") ‘‘‘ p1和p2是夫妻,2人共有100万存款,当p1取走20万时,p2去查询时,会发现余额还有80万 ‘‘‘ print("浅COPY的实际应用") person = ["name",["saving",1000000]] p1 = person[:] p2 = person[:] p1[0] = "Romeo" p2[0] = "Juliet" print(p1) print(p2) print("p2取款20万") p2[1][1] = "800000" print(p1) print(p2)
Python自动化开发-day01-Python开发基础2-元组、字典、文件操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。