1. 程式人生 > >python 2018.7.11

python 2018.7.11

寫入 def 掌握 修改 line rename 重命名文件 讀寫 ada

1. r
# 路徑有兩種:
# 1. 相對路徑, 相對於你當前程序所在的文件夾.(必須掌握)
# ../ 返回上一層目錄
# 相對的是當前程序所在的文件夾

# 2. 絕對路徑. 1.從磁盤根目錄尋找. 2.互聯網上的一個絕對路路徑
# f = open("file/wuse", mode="r", encoding="utf-8")
# s = f.read()
# f.close() # 關閉句柄
# print(s)


# f = open("吃的", mode="r", encoding="utf-8")
# for line in f: # 每次讀取一行. 賦值給前面的line變量
# print(line)
# f.close()


2. w:
f = open("小護士模特", mode="w", encoding="utf-8")   # 寫入之前會情掉原來的內容
f.write("杜十娘")
f.flush()
f.close()

3. a
f = open("小護士模特", mode="a", encoding="utf-8")   # 在原來的基礎上進行追加內容. 
f.write("小龍女")
f.flush()
f.close()

4. r+
讀寫模式.
需要移動光標進行反復讀寫
# f = open("老師點名", mode="r+", encoding="utf-8") # r+模式, 默認情況下光標在文件的開頭, 必須先讀, 後寫
# f.write("周潤發")
# s = f.read()
# f.flush()
# f.close()
# print(s)


# f = open("精品", mode="r+", encoding="utf-8")
# s = f.read(3)
# # 不管你前面讀了幾個. 後面去寫都是在末尾
# # f.write("哈哈") # 1.在沒有任何操作之前進行寫. 在開頭寫 2. 如果讀取了一些內容. 再寫, 寫入的是最後
#
# # print(ss)


f = open("精品", mode="r+", encoding="utf-8")
# f.read(3)
# f.seek(3) # 移動到xx位置
# 移動到開頭: f.seek(0) 開頭
# 移動到末尾: f.seek(0, 2) 末尾 第二個參數有三個值. 0: 再開頭, 1: 在當前, 2: 末尾

#超人的都是精品.abcdefg潘長江是精品巴拉巴拉小魔仙哈哈
# f.seek(6) # 移動6個字節. 2個字
# s = f.read(3) # 讀取3個字
# print(s)
# f.seek(0)
# ss = f.read(3)
# print(ss)

# s = f.read()
# f.seek(0)
# ss= f.read()
# print(s)
# print(ss)


5. w+
f = open("褻瀆", mode="w+", encoding="utf-8")  # w 操作.會清空原來的內容.  w+是不用的.
f.write("今天天氣")
f.seek(0)
s = f.read()
print(s)
f.flush()
f.close()


6. a+
7. b bytes 讀寫操作的是字節. 用在非文本上
8. seek() 移動光標到xx位置
開頭: seek(0), 末尾: seek(0,2)
9. 文件修改
創建新文件. 把修改後的內容寫入新文件. 刪除老文件. 重命名新文件
import os
os.remove("")刪除文件
os.rename("源文件", "新文件名") 重命名文件

for line in f:
line 一行數據

with open("文件名") as f:
不需要關閉文件句柄
import os

with open("吃的", mode="r", encoding="utf-8") as f1, \
open("吃的_副本", mode="w", encoding="utf-8") as f2:
# s = f1.read()
# ss = s.replace("肉", "菜")
# f2.write(ss)
for line in f1:
s = line.replace("菜", "肉")
f2.write(s)

os.remove("吃的") # 刪除文件
os.rename("吃的_副本", "吃的") # 重命名文件
10.其他操作
# f = open("吃的", mode="r", encoding="UTF-8")
# # 如何判斷這個文件可以進行什麽操作
# print(f.readable()) # 判斷文件是否可讀
# print(f.writable()) # 是否可寫入

# l = f.readlines() # 拿到列表
# for s in l:
# ss = s.strip() # strip() 去掉空格. 還可以去掉換行符, 制表符
# print(ss)
# print(l)
# f.flush()
# f.close()
#
# s = "\t哈哈哈哈"
# print(s.strip())
#
truncate()
f = open("馬大帥", mode="r+", encoding="utf-8")
f.seek(12)
# f.truncate() # truncate() 不給參數. 從文件頭.截取到當前位置
f.truncate(15) # truncate(參數) 給了參數. 從文件頭截取到你給這個參數的位置
f.flush()
f.close()


python 2018.7.11