python全栈开发 * 08知识点汇总 * 180608
生活随笔
收集整理的這篇文章主要介紹了
python全栈开发 * 08知识点汇总 * 180608
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
08知識點梳理 文件操作
一 .文件操作 r (只讀)
1.r (讀) rb(字節)
f=open("果蔬大雜燴",mode="r",encoding="UTF-8")
content=f.read()
print(content)
2.rb(字節) MP3 圖像 視頻
f=open("果蔬大雜燴",mode="rb")
content=f.read()
print(content)
#絕對路徑: 從磁盤根?錄開始?直到?件名. ( "d:/**/b**/") or ("http:/**/**/")
#相對路徑: :同?個?件夾下的?件. 相對于當前這個程序所在的?件夾??. 如果在同?個?件夾中. 則相對路徑就是這個?件名("f/**/**/").
# 如果在上?層?件夾. 則要("../**/**/")
3.讀取文件的方法( 五種)
方法一 read() 文件中的內容全部讀取.
f=open("果蔬大雜燴",mode="r",encoding="UTF-8")
content=f.read()
print(content)
f.close()
方法二 read(n) 讀取n個字符 read(n) 讀取n個字符. 需要注意的是. 如果再次讀取. 那么會在當前位置繼續去讀?不
#是從頭讀, 如果使?的是rb模式. 則讀取出來的是n個字節
f=open("果蔬大雜燴",mode="r",encoding="UTF-8")
content=f.read(7)
print(content)
f.close()
f=open("果蔬大雜燴",mode="rb")
content=f.read(3)
print(content)
f.close()
方法三 readline() ?次讀取??數據, 注意: readline()結尾, 注意每次讀取出來的數據都會有?
#個\n 所以呢. 需要我們使?strip()?法來去掉\n或者空格
f=open("果蔬大雜燴",mode="r",encoding="UTF-8")
content=f.readline()
print(content.strip())
f.close()
方法四 readlines() readlines()將每??形成?個元素, 放到?個列表中. 將所有的內容都讀取出來. 所以
#也是. 容易出現內存崩潰的問題.不推薦使?
f=open("果蔬大雜燴",mode="r",encoding="UTF-8")
lst=f.readlines()
for line in lst:
print(line)
f.close()
方法五 循環讀取 這種?式是組好的. 每次讀取??內容.不會產?內存溢出的問題
f=open("果蔬大雜燴",mode="r",encoding="UTF-8")
for line in f:
print(line)
f.close()
# 比較
# print("劉德華") 各輸出各的
# print("周潤發") 各輸出各的
# print("劉德華",end="")
# print("周潤發") 輸出"劉德華周潤發"
二 .文件操作 w (寫文件)
1.w (寫文件) f=open("歌單",mode="w",encoding="UTF-8")
f.write("開始懂了")
f.write("我懷念的\n")
f.write("逆光")
f.write("綠光")
f.flush()
f.close()
2. wb (字符)
f=open("菜單",mode="wb")
f.write("烤全羊".encode("UTF-8"))
f.write("滿漢全席".encode("UTF-8"))
f.write("北京烤鴨".encode("UTF-8"))
f.flush()
f.close()
三 .文件操作 a (追加)
1. a (追加)
f=open("歌單",mode="a",encoding="UTF-8")
f.write("寓言")
f.write("阿刁\n")
f.write("歐若拉")
f.flush()
f.close()
2. ab (字節)
f=open("歌單",mode="ab")
f.write("隱形的翅膀".encode("UTF-8"))
f.write("親愛的這不是愛情".encode("UTF-8"))
f.flush()
f.close()
四 文件操作 r+ (讀寫) 先讀后寫
f=open("果蔬大雜燴",mode="r+",encoding="UTF-8")
content=f.read()
print(content)
f.write("奇異果")
f.flush()
f.close()
五 文件操作 w+ (寫讀) 先清空,再寫入,最后讀取 結果是空
f=open("歌單",mode="w+",encoding="UTF-8")
f.write("紅豆")
f.write("流年")
content=f.read()
print(content)
f.close()
六 .文件操作 a+ (追加讀) 不論先讀后讀 都讀不到數據.
f=open("歌單",mode="a+",encoding="UTF-8")
content=f.read()
f.write("七里香")
print(content)
七 其他相關操作 seek(n) ; tell() ;truncate() .
1 .seek(n)光標移到 n 位置 # 移動的單位是byte. 所以如果是UTF-8的中?部分要是3的倍數.,
# 移到開頭seek(0); 移動到結尾: seek(0,2)
# # (seek的第?個參數表?的是從哪個位置進?偏移, 默認是0 表?開頭, 1 表?當前位置, 2 表?結尾. 第一個參數表示偏移量).
f=open("果蔬大雜燴",mode="r+",encoding="UTF-8")
f.seek(0)
content=f.read()
print(content)
f.seek(0,2)
content=f.read()
print(content)
2. tell(_) 獲取當前光標在什么位置
f=open("果蔬大雜燴",mode="r+",encoding="UTF-8")
f.read(5)
print(f.tell())
# 結果顯示光標在15.(第五個字后面)
3. truncate() 截斷文件 .
根據光標位置保留前面的內容,刪除后面的內容.
#如果truncate()給了參數,和光標沒關系,將文件從頭到參數之間的內容保留.
f=open("歌單",mode="r+",encoding="UTF-8")
content=f.read(3)
f.seek(3)
f.truncate()
print(content)
# 深坑請注意: 在r+模式下. 如果讀取了內容. 不論讀取內容多少. 光標顯?的是多少. 再寫入
#或者操作?件的時候都是在結尾進?的操作.
八 修改文件 with for循環
1.with
import os
with open("五行",mode="r",encoding="UTF-8") as f1,\
open("五行_new",mode="w",encoding="UTF-8")as f2:
content=f1.read()
new_content=content.replace("金","銀")
f2.write(new_content)
os.remove("五行")
os.rename("五行_new","五行")
2. for 循環
import os
with open("五行",mode="r",encoding="UTF-8") as f1,\
open("五行_new",mode="w",encoding="UTF-8")as f2:
for line in f1:
new_line=line.replace("金","銀")
f2.write(new_line)
os.remove("五行")
os.rename("五行_new","五行")
一 .文件操作 r (只讀)
1.r (讀) rb(字節)
f=open("果蔬大雜燴",mode="r",encoding="UTF-8")
content=f.read()
print(content)
2.rb(字節) MP3 圖像 視頻
f=open("果蔬大雜燴",mode="rb")
content=f.read()
print(content)
#絕對路徑: 從磁盤根?錄開始?直到?件名. ( "d:/**/b**/") or ("http:/**/**/")
#相對路徑: :同?個?件夾下的?件. 相對于當前這個程序所在的?件夾??. 如果在同?個?件夾中. 則相對路徑就是這個?件名("f/**/**/").
# 如果在上?層?件夾. 則要("../**/**/")
3.讀取文件的方法( 五種)
方法一 read() 文件中的內容全部讀取.
f=open("果蔬大雜燴",mode="r",encoding="UTF-8")
content=f.read()
print(content)
f.close()
方法二 read(n) 讀取n個字符 read(n) 讀取n個字符. 需要注意的是. 如果再次讀取. 那么會在當前位置繼續去讀?不
#是從頭讀, 如果使?的是rb模式. 則讀取出來的是n個字節
f=open("果蔬大雜燴",mode="r",encoding="UTF-8")
content=f.read(7)
print(content)
f.close()
f=open("果蔬大雜燴",mode="rb")
content=f.read(3)
print(content)
f.close()
方法三 readline() ?次讀取??數據, 注意: readline()結尾, 注意每次讀取出來的數據都會有?
#個\n 所以呢. 需要我們使?strip()?法來去掉\n或者空格
f=open("果蔬大雜燴",mode="r",encoding="UTF-8")
content=f.readline()
print(content.strip())
f.close()
方法四 readlines() readlines()將每??形成?個元素, 放到?個列表中. 將所有的內容都讀取出來. 所以
#也是. 容易出現內存崩潰的問題.不推薦使?
f=open("果蔬大雜燴",mode="r",encoding="UTF-8")
lst=f.readlines()
for line in lst:
print(line)
f.close()
方法五 循環讀取 這種?式是組好的. 每次讀取??內容.不會產?內存溢出的問題
f=open("果蔬大雜燴",mode="r",encoding="UTF-8")
for line in f:
print(line)
f.close()
# 比較
# print("劉德華") 各輸出各的
# print("周潤發") 各輸出各的
# print("劉德華",end="")
# print("周潤發") 輸出"劉德華周潤發"
二 .文件操作 w (寫文件)
1.w (寫文件) f=open("歌單",mode="w",encoding="UTF-8")
f.write("開始懂了")
f.write("我懷念的\n")
f.write("逆光")
f.write("綠光")
f.flush()
f.close()
2. wb (字符)
f=open("菜單",mode="wb")
f.write("烤全羊".encode("UTF-8"))
f.write("滿漢全席".encode("UTF-8"))
f.write("北京烤鴨".encode("UTF-8"))
f.flush()
f.close()
三 .文件操作 a (追加)
1. a (追加)
f=open("歌單",mode="a",encoding="UTF-8")
f.write("寓言")
f.write("阿刁\n")
f.write("歐若拉")
f.flush()
f.close()
2. ab (字節)
f=open("歌單",mode="ab")
f.write("隱形的翅膀".encode("UTF-8"))
f.write("親愛的這不是愛情".encode("UTF-8"))
f.flush()
f.close()
四 文件操作 r+ (讀寫) 先讀后寫
f=open("果蔬大雜燴",mode="r+",encoding="UTF-8")
content=f.read()
print(content)
f.write("奇異果")
f.flush()
f.close()
五 文件操作 w+ (寫讀) 先清空,再寫入,最后讀取 結果是空
f=open("歌單",mode="w+",encoding="UTF-8")
f.write("紅豆")
f.write("流年")
content=f.read()
print(content)
f.close()
六 .文件操作 a+ (追加讀) 不論先讀后讀 都讀不到數據.
f=open("歌單",mode="a+",encoding="UTF-8")
content=f.read()
f.write("七里香")
print(content)
七 其他相關操作 seek(n) ; tell() ;truncate() .
1 .seek(n)光標移到 n 位置 # 移動的單位是byte. 所以如果是UTF-8的中?部分要是3的倍數.,
# 移到開頭seek(0); 移動到結尾: seek(0,2)
# # (seek的第?個參數表?的是從哪個位置進?偏移, 默認是0 表?開頭, 1 表?當前位置, 2 表?結尾. 第一個參數表示偏移量).
f=open("果蔬大雜燴",mode="r+",encoding="UTF-8")
f.seek(0)
content=f.read()
print(content)
f.seek(0,2)
content=f.read()
print(content)
2. tell(_) 獲取當前光標在什么位置
f=open("果蔬大雜燴",mode="r+",encoding="UTF-8")
f.read(5)
print(f.tell())
# 結果顯示光標在15.(第五個字后面)
3. truncate() 截斷文件 .
根據光標位置保留前面的內容,刪除后面的內容.
#如果truncate()給了參數,和光標沒關系,將文件從頭到參數之間的內容保留.
f=open("歌單",mode="r+",encoding="UTF-8")
content=f.read(3)
f.seek(3)
f.truncate()
print(content)
# 深坑請注意: 在r+模式下. 如果讀取了內容. 不論讀取內容多少. 光標顯?的是多少. 再寫入
#或者操作?件的時候都是在結尾進?的操作.
八 修改文件 with for循環
1.with
import os
with open("五行",mode="r",encoding="UTF-8") as f1,\
open("五行_new",mode="w",encoding="UTF-8")as f2:
content=f1.read()
new_content=content.replace("金","銀")
f2.write(new_content)
os.remove("五行")
os.rename("五行_new","五行")
2. for 循環
import os
with open("五行",mode="r",encoding="UTF-8") as f1,\
open("五行_new",mode="w",encoding="UTF-8")as f2:
for line in f1:
new_line=line.replace("金","銀")
f2.write(new_line)
os.remove("五行")
os.rename("五行_new","五行")
轉載于:https://www.cnblogs.com/J-7-H-2-F-7/p/9156791.html
總結
以上是生活随笔為你收集整理的python全栈开发 * 08知识点汇总 * 180608的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql explain的使用(优化查
- 下一篇: 飞鱼科技游戏开发岗面试经验