文件操做

文件的各類操做

文件操做

f = open('文件的路徑',mode = '打開文件的模式',encoding = '編碼方式')
# 打開 第一個內容是文件的名字(必須是字符串)
# mode 第二個內容是咱們對文件的操做方式
# encoding 第三個內容是咱們文件的編碼集
# f 文件句柄全部對文件的操做都是操做文件句柄

只讀

mode = 'r'python

# mode = 'r' 只讀
content = f.read()  # 讀 一次性所有讀取
content = f.readline()  # 讀取一行,可是一行後有\n換行
content = f.readlines()  # 讀取多行,存放在列表裏
content = f。read(3) # mode = 'r' read裏的內容就是表示讀取的字符數量
print(content)

mode = 'rb'面試

f = open(r'c:\Users\Super La\Desktop\qwe.txt', mode = 'rb')
# r 和 \\ 同樣都是轉義  r'c:\Users\Super La\Desktop\qwe.txt'      'c:\\Users\\Super La\\Desktop\\qwe.txt'
# 若是直接拷貝文件路徑的話 將C轉換成c
# rb讀取字節
print(f.read()) # 讀取字節 不能指定編碼格式

絕對路徑:從磁盤開始查找的就是絕對路徑編碼

相對路徑:相對與 上文件夾內容詳解來查找的一種路徑9操作系統

文件路徑推薦寫法 用相對路徑code

只寫

mode = 'w'ip

f = open('t1.txt', mode = 'w', encoding = 'utf8')
f.write('lalalalaalal')
f.write('啦啦啦啦啦啦')
print(f.write('123456'))  # 返回建立字符的數量
# w模式 若是文件不存在就新建一個
# 覆蓋寫,寫以前先把文件清空

mode = 'wb'utf-8

f = open('qq.jpg',mode = 'rb')
f = open('qq1.jpg',mode = 'wb')
f.write(f.read())

a 模式 追加rem

f = open('t1',mode = 'a', encoding = 'utf8')
f.write('lalala')
#文件最後添加內容

'w' 只寫 沒有讀的功能 打開word 打不開字符串

讀寫

r+ 讀 寫it

f = open('t1',mode = 'r+',encoding = 'utf8')
# 讀 寫
#print(f.read())  #讀內容
#f.write('啦啦啦') 

# 寫 讀 錯誤示範 寫的時候會把源文件覆蓋一部分
#f.write('啦啦啦') 
#print(f.read())  #讀內容

w+ 寫 讀

f = open('t1',mode = 'w+',encoding = 'utf8')
f.write('lalala')
f.seek(0)  # 移動文件光標 
print(f.read())

a+ 追加 讀

f = open('t1',mode = 'a+',encoding = 'utf8')
f.seek(0)
print(f.read())
f.write('哈哈哈')

最經常使用的r+

f = open(r'..\t1',mode = 'r+',encoding = 'utf8')
# ..\ 返回上一級
#print(f.read())  # 讀內容
#f.write('今天是個好日子')

總結:

# r 只讀    不能寫
# read()   讀取所有  模式是r的時候  read(3)  讀取3個字符
#                    模式是rb的時候  read(3)  讀取3個字節
# read()   讀取一行
# readlines()    存放在一個列表中

# w 只寫    不能讀   覆蓋寫,先清空文件的內容,再寫
# 當文件不存在的時候,建立一個文件

# a 追加 不能讀
# 寫的內容一直在問價的末尾

# r+
# 錯誤示範    先寫在讀
# 正確的是    先讀在寫

# w+    寫讀
# 寫讀的時候是讀不到內容的,除非移動光標

# a+  追加寫  讀
# 寫讀的時候是讀不到內容的,除非移動光標
# 最經常使用:r, w, a, r+, a+

f = open('t1',mode = 'r',encoding = 'utf8')
#print(f.read())
msg = f.read()
print(msg)
f.close()  # 關閉文件

f = open('t1',mode = 'w',encoding = 'utf8')
msg = f.write('啦啦啦')
f.flush()   # 刷新
print(msg)
f.close()
with open('t1', mode = 'r', encoding = 'utf8') as f :     #上下文管理    ---面試題
    msg = f.read()
    print(msg)
# 不用自動關閉

文件其餘操做

with open('t1','r',encoding = 'utf8') as f:
    print(f.read())
    print(f.seeek(0)) # 字節
    # 雙數字
         # (0,0)文件的頭部
         # (0,2)文件的尾部
         # (0,1)當前位置
     # 單數字
         seek(0)    #字節  
    print(f.read(1)) # 讀一個字符
    print(f.tell()) # 查看光標的位置  數的字節
with open('t1','r',encoding = 'utf8') as f:
    f.truncate(9)   #截取 3個字符 指定字節以後的內容所有刪除

文件更改及名字修改

import os
os.rename('t2','t3') # 修改文件名
with open('t1','r',encoding = 'utf8') as f , open('t2','a',encoding = 'utf8') as f1:
    msg = f.read()   # 將文件複製一份
    msg = msg.replace('好','困')
    f1.write(msg)
    
import os
os.remove('t1')  # 刪除源數據
os.rename('t2','t3')
with open('t4',mode = 'r',encoding = 'utf8') as f, open('t6', mode = 'a',encoding = 'utf8') as f2:
    for i in f:
        print(i.strip())
        f2.write(i) # 文件修改

今日總結:

# open()  # 打開
    # close 要關閉文件
    # 寫模式下須要刷新  flush()

    # r 只讀
    #   read(3)   看對文件操做的模式來判斷是字符仍是字節
    #   mode = 'r' 時候是字符
    #   mode = 'rb' 時候是字節
    # readline()   讀取一行,自帶\n(換行)
    # readlines()  讀取所有以一行一行的形式存在放列表裏

    # a 追加
        #文件的末尾寫
    # w 覆蓋寫
        # 先清空文件,後寫入文件

    # rb ,wb ab本身試
        # 只要是帶b的模式,注意的是否是不能有encoding

    # a+
    #   追加 + 讀     注意 無論怎麼讀都讀不到內容,除非移動光標

    # w+
    #   覆蓋寫 + 讀   注意:先寫後讀  先讀後寫   除非移動光標

    # r+
    #   讀 + 寫      注意: 先讀後寫

    # 其餘操做

    # seek()  移動光標
    #   0,0    開頭
    #   0,1    當前
    #   0,2    末尾

    # 3 若是是文字就移動一位,若是是英文就移動3位

    # tell() 查看光標 光標是按照字節數的

    # truncate()  截取  內容是字節數

# 文件修改
import os  # 導入  os和操做系統相關

# os.rename()  # 重命名  第一個參數舊的名字,第二個是新的名字
# os.remove()    # 刪除這個文件  字符串


# with open('t1','r',encoding='utf-8')as f,\
#       open('t2','w',encoding='utf-8')as f1:

# 路徑:

# 絕對路勁: 從磁盤根目錄開始查找
# 相對路勁: 相對於某個東西來查找就是相對路徑
#   返回上一級 ..\
# c:\user\...    能夠把單個\寫成雙\\
# 在路徑的前面加一個r
# 以上兩種就是轉義
相關文章
相關標籤/搜索