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)
时间: 2024-08-11 05:52:48

Python自动化开发-day01-Python开发基础2-元组、字典、文件操作的相关文章

python开发基础:字符编码&文件操作

一,字符编码 1 以什么编码存的就要以什么编码取出 ps:内存固定使用unicode编码, 我们可以控制的编码是往硬盘存放或者基于网络传输选择编码 2 数据是最先产生于内存中,是unicode格式,要想传输需要转成bytes格式#unicode----->encode(utf-8)------>bytes拿到bytes,就可以往文件内存放或者基于网络传输#bytes------>decode(gbk)------->unicode 3 python3中字符串被识别成unicode

Python自动化运维:Django基础

Django 框架Django基于python语言写的全栈一体式的开源web开发框架, 遵循MVC框架设计. 既然是遵循, 那么肯定有自己的特点, 所以他对MVC进行精简和演变后的框架名称是 MTV.Model(模型) -- Templates(模板) -- Views(视图) M -- Model -- 模型 类似MVC中的M功能, 注意负责和数据库交互, 进行数据处理, 以及数据库表的创建等.跟数据库打交道的模块 T -- Template -- 模板 类似MVC中的V功能相同, 负责封装构

Python基础(三) 数据类型、文件操作

我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点型以及布尔类型.这些基本数据类型组成了基本控制块,从而创建的Python应用程序. 一.基本结构 1.数值: Python支持不同的数值类型: int (有符号整数): 通常被称为只是整数或整数,是正或负整数,不带小数点. long (长整数 ): 或长,是无限大的整数,这样写整数,后面跟着一个大写或小写的L. 注意:自从Python2.2起,如果整数发生溢出,Python会自动将整数转换为长整数,所以如今在长整数数据后面不加字

python基础(集合、文件操作)

集合: 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. 关系测试,测试两组数据之前的交集.差集.并集等关系. 1,集合的创建. set1 = set({1,2,'barry'}) set2 = {1,2,'barry'} print(set1,set2) # {1, 2, 'barry'} {1, 2, 'barry'} 2,集合的增. set1 = {'

python基础(集合,文件操作)

一.集合(set) 集合:1.无序的,不重复的 2.他里面的元素必须是可哈希的. int str bool () ,但是它本身是不可哈希的.   3.集合不能更改里面的元素   4.集合可以求交集,并集,差集,反交集等. 1.集合的创建 set1 = set({1,2,'alex'}) set2 = set1 print(set1,set2) # 输出结果:{1, 2, 'alex'} {1, 2, 'alex'} 2.集合的增(2种方式) 1.set1.add()(直接增加) set1 = {

python第三天学习复习,集合set,文件操作,函数(普通函数,递归,高阶函数),字符编码和解码

三元运算 age = 23 #就是if else的简单写法 a = age if age < 20 else 25 集合 set #集合是无序切不重复的, #当对列表去重复的时候,可以直接使用 set(list),就将list转为set,并去除中间重复的 list = [1,2,3,4,5,5,6,7,8,9,1] s = set(list) 运行结果:可以发现将 list中重复的去掉,并且类型变成set,再使用list(set),转为list 集合操作 # Author:zylong set1

Linux基础命令,目录文件操作,vi编辑器详解

一.linux基础命令 linux命令的执行必须依赖于shell命令解释器.shell实际上是在linux系统中运行的一种特殊程序,它位于操作系统内核与用户之间,负责接收用户输入的命令并进行解释,将需要执行的操作传递给系统内核执行,shell在用户和内核之间充当了一个"翻译官"的角色.当用户登录到linux系统时,会自动加载一个shell程序,以便给用户提供可以输入命令的操作系统. 1.首先介绍一下快捷键 Tab键:用来补齐命令字或文件.目录名,例如输入"ifcon"

python自动化运维之面向对象基础

python中一切皆为对象      其实面向对象没什么高大上的东西,只不过把我们平时对于事物的描述和动作系统的总结成了一个定义事物的方法而已.我们平时向别人介绍一个他(她)从未见过的东西,会从外形和外貌特征来说明这个东西,比如颜色,大小等,这就对象的属性.还会介绍这个东西能做什么或者有什么用,这就是对象的方法.所以用属性和方法就可以定义一个对象.也就是说一个对象包含了各种属性和方法.     在python中使用对象属性和方法的记法为:object.attribute 或 object.met

python之路:Day01 --- Python基础2

本节内容 1.列表操作 2.元组操作 3.字符串操作 4.字典操作 5.集合操作 6.文件操作 7.字符编码与转换 一.列表操作 定义列表 names = ['Ming',"Hua",'Jun'] 通过下标访问列表中的元素,下标从0开始计数 >>> names[0] 'Ming' >>> names[2] 'Hua' >>> names[-1] 'Jun' >>> names[-2] #还可以倒着取 'Hua' 切

python基础(二)——文件操作

1.创建文件夹 >>> import os >>> os.mkdir("D:\python\dir") 2.判断文件or文件夹 >>> import os#判断是否是文件夹 >>> os.path.isdir(r"D:\python\dir") True#判断是否是文件 >>> os.path.isfile(r"D:\python\dir\file.txt"