1. 程式人生 > >Python自動化開發-day01-Python開發基礎2-元組、字典、文件操作

Python自動化開發-day01-Python開發基礎2-元組、字典、文件操作

文件 list pri 循環 pop 修改 寫入 replace pda

學習內容:

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-元組、字典、文件操作