1. 程式人生 > >python文件處理練習

python文件處理練習

tail cp seek

1、模擬cp命令拷貝文件(圖片,視頻)到其他路徑下

with open('a.txt','rb') as f,open('b.txt','wb') as write:       #選擇rb模式,支持所有的拷貝,對應的寫模式就是wb,直接處理的是bytes類型
        for line in f:                                                                 #遍歷源文件的每一行 
            write.write(line)                                                       #寫入新文件write中


但是這樣的沒有支持用戶自己傳參數,所以最後的代碼如下:

import sys
if len(sys.argv)<3:                                    #用戶輸入參數少於3個
    print('python3 copy.py source.file target.file ')    #提示用戶命令的用法需要3個參數
    sys.exit()
with open(r'%s' %sys.argv[1],'rb') as f,open(r'%s' %sys.argv[2],'wb') as write:     #這裏處理的文件是基於用戶輸入的參數取到的
    for line in f:
        write.write(line)


2、python模擬tail命令, 顯示日誌文件內容,不退出

python3 tail.py
import sys
import time
with open(r'%s' %sys.argv[2],'rb') as read:
    read.seek(0,2)                            #2模式以末尾為參照,前面的0表示最後一個字節,保證光標直接在文件尾部
    while True:
        line=read.readline()
        if line:                                   #如果行有內容
            print(line.decode('utf-8'),end='')    #默認是字節碼,轉換為字符,end等於空表示換行符不單獨打一行
        else:
            time.sleep(0.2)                    #休息0.2秒以後再接著做判斷





python文件處理練習