w模式我們說(shuō)是用來(lái)創(chuàng)建新文件的,那它的應(yīng)用場(chǎng)景在哪呢?
其實(shí)你疆場(chǎng)都在用這個(gè)模式,只是你自己不知道而已。
就是我們常用的ctrl+c、ctrl+v。
我把一個(gè)文件復(fù)制一下,然后到另一個(gè)路徑粘貼進(jìn)去。這個(gè)拷貝的過(guò)程你仔細(xì)思考一下,是怎么實(shí)現(xiàn)的。
其實(shí)拷貝功能很簡(jiǎn)單,就是把原來(lái)文件的內(nèi)容讀出來(lái),然后寫到一個(gè)新文件里去。
不管你是拷貝文本文件,還是視頻或者圖片,本質(zhì)都是一樣的。
現(xiàn)在我們只學(xué)了文本文件,我們就以拷貝文本文件為例。
假設(shè)我有一個(gè)需求,我要把這個(gè)date文件夾下的user.txt拷貝一份,拷貝到外面學(xué)習(xí)文件那層去。并且名字我改成user(副本).txt。
首先要讀取原文件內(nèi)容對(duì)吧。
with open(fr'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\user.txt', mode='rt', encoding='utf-8') as f1, \
open('user副本.txt', mode='wt', encoding='utf-8') as f2:
現(xiàn)在我們要把f1的內(nèi)容讀取出來(lái)。
with open(fr'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\user.txt', mode='rt', encoding='utf-8') as f1, \
open('user副本.txt', mode='wt', encoding='utf-8') as f2:
res = f1.read()
f2.write(res)
現(xiàn)在來(lái)運(yùn)行一下。
學(xué)習(xí)文件里面就多了一個(gè)user副本.txt的文件。
如果我們要把這個(gè)程序做成一個(gè)拷貝工具,就不能把路徑寫死了,得讓用戶自己輸入文件路徑。
讓用戶輸入還是input功能。
old_path = input('請(qǐng)輸入原文件路徑').strip()
new_path = input('請(qǐng)輸入新文件路徑').strip()
with open(fr'{old_path}', mode='rt', encoding='utf-8') as f1, \
open(fr'{new_path}', mode='wt', encoding='utf-8') as f2:
res = f1.read()
f2.write(res)
然后我們來(lái)運(yùn)行看下。
這樣學(xué)習(xí)文件文件夾下的user_date(副本).txt文件也拷貝過(guò)來(lái)了。
當(dāng)然這個(gè)程序現(xiàn)在只能針對(duì)文本文件,等我們后面學(xué)了b模式之后你就可以實(shí)現(xiàn)圖片和視頻的拷貝功能了。
未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » Python 拷貝功能