Python.IO之簡(jiǎn)易的文件操作2

在python中有os模塊(py文件),與操作系統(tǒng)有關(guān)的模塊
這里可以完成文件的操作芬位。
使用模塊的方式:
1俘种、導(dǎo)入
2、使用模塊名. 調(diào)用出此py文件中內(nèi)容

rename 方法的使用:

#os.rename:重命名文件
# 語法:
    # os.rename('源文件路徑&源文件名','目標(biāo)文件路徑&修改后文件名')

# 備注:字符串前加r是因?yàn)槁窂降闹械陌摹癨”符號(hào)對(duì)于python來說是有特殊意義的揪阶。
    # 加上r可以避免因?yàn)殛P(guān)鍵符號(hào)引起的錯(cuò)誤
    # r'E:\test\1_reame.txt' 等同于'E:\\test\\1_reame.txt' or 'E:/test/1_reame.txt'/1_reame.txt'

Python 對(duì)OS.rename的注釋:


圖片.png
import os #導(dǎo)入os模塊
import shutil #導(dǎo)入shutil模塊
os.rename(r'E:\test\1_reame.txt',r'E:\test\1_reame.txt')

運(yùn)行結(jié)果:

圖片.png
圖片.png

=======================================================

mkdir等 方法的使用:

os.mkdir:創(chuàng)建文件夾
語法:
    os.mkdir('路徑文件名or文件夾名(默認(rèn)當(dāng)前路徑下創(chuàng)建)')
備注:
    mkdir在創(chuàng)建文件夾的時(shí)候,上級(jí)路徑必須存在



os.makedirs:創(chuàng)建路徑樹里所有文件夾
語法:
    os.makedirs('與mkdir類似')
備注:
    os.makedirs是對(duì)mkdir功能的一個(gè)包涵和擴(kuò)展并徘,個(gè)人是比較推薦遣钳。
    目標(biāo)路徑如果沒有文件夾扰魂,就會(huì)創(chuàng)建麦乞。
    如果有文件夾就直接打開該文件夾進(jìn)行下一步創(chuàng)建。
os.mkdir(r'E:\test\666')
#在r'E:\test\'文件目錄下創(chuàng)建一個(gè)名為666的文件夾
#假若test文件夾不存在劝评,那么創(chuàng)建test\下的666文件夾就會(huì)報(bào)錯(cuò)姐直。

os.makedirs(r'E:\test\666\233\name\lol')
os.makedirs(r'E:\test\1\2\3\4')
#test文件夾下創(chuàng)建一大堆文件夾就是了,有就用蒋畜,沒就創(chuàng)声畏。沒了之前mkdir那么矯情。

運(yùn)行結(jié)果:

=======================================================

listdir等 方法的使用:

listdir:列舉此文件夾下的所有內(nèi)容
語法:
    os.listdir('路徑')
備注:
ls = os.listdir(r'E:\test')
#把E:\test下的文件夾和文件全部列舉出來放到一個(gè)列表里姻成。
print(ls)
#打印這個(gè)列表
print('='*20)
print(os.getcwd())
# 查詢當(dāng)前工作目錄并打印
 print('='*20)
print('='*20)
os.chdir(r'E:\test')
print('切換到文件夾:',end='')
print(os.getcwd())
# 切換到某一文件夾目錄并打印
print('='*20) 

運(yùn)行結(jié)果:

圖片.png
圖片.png
圖片.png

=======================================================
刪:
rmdir等方法的使用:

rmdir:刪除空文件夾
語法:
    os.rmdir('路徑')
備注:
    刪除非空文件夾的時(shí)候插龄,會(huì)提示無法刪除。
    刪除不存在的文件夾時(shí)也會(huì)提示報(bào)錯(cuò)科展。
    刪除不是移到回收站均牢。



rmtree:刪除包涵內(nèi)容的文件夾
語法:
    shutil.rmdir('路徑')
備注:
    刪除不存在的文件夾時(shí)也會(huì)提示報(bào)錯(cuò)。
    使用之前要同時(shí)導(dǎo)入shutil模塊和OS模塊包才睹。
    刪除不是移到回收站徘跪。      
# os.rmdir(r'E:\test\空文件夾')
刪除test路徑下名為“空文件夾”的文件
 shutil.rmtree(r'E:\test\666')
#刪除test路徑下名為“666”的文件,包括刪除666文件夾里所有的內(nèi)容琅攘。

運(yùn)行結(jié)果:

=======================================================

=======================================================

知識(shí)點(diǎn)的應(yīng)用

=======================================================

批量修改文件名:

import os
import os.path
#輸入完整路徑
path = input('輸入路徑:')
#列出所有內(nèi)容
ls = os.listdir(path)
#切換工作目錄
os.chdir(path)
#遍歷
for i in ls:
    #判斷是否是文件
    if os.path.isfile(i):
        num = i.rfind('.')
        if num!=-1:
            newName = i[:num]+'-new'+i[num:]
            #重命名
            os.rename(i,newName)

實(shí)現(xiàn)文件的復(fù)制粘貼

輸入源文件的路徑
輸入源文件的名字
輸入目標(biāo)路徑
執(zhí)行復(fù)制粘貼
要求復(fù)制到目標(biāo)路徑里垮庐,默認(rèn)是原來文件的名字,如果此名字已經(jīng)在當(dāng)前路徑里坞琴,把名字改成如下格式(需要加副本或者對(duì)應(yīng)的數(shù)字):

import os
import os.path


def main():
    pathSrc = input('請(qǐng)輸入源文件的路徑:')
    fileName = input('請(qǐng)輸入源文件的名字:')
    pathDest = input('請(qǐng)輸入目標(biāo)文件夾的路徑:')
    i = 2
    while True:
        if not hasFile(pathDest,fileName):
            copy_paste(os.path.join(pathSrc,fileName),os.path.join(pathDest,fileName))
            break
        elif not hasFile(pathDest,doFileName(fileName)):
            print('if......')
            copy_paste(os.path.join(pathSrc,fileName),os.path.join(pathDest,doFileName(fileName)))
            break
        elif not hasFile(pathDest,doFileName(fileName,i)):
            print('elif......')
            copy_paste(os.path.join(pathSrc,fileName),os.path.join(pathDest,doFileName(fileName,i)))
            break
        else:
            i+=1



def hasFile(path,fileName):
    '''
        判斷文件是否存在
        path:文件所在的路徑
        fileName:文件的名字
    '''
    return os.path.exists(os.path.join(path,fileName))

def doFileName(fileName,num=None):
    '''
        返回處理后文件的名字
        如果num是None哨查,只拼接副本
        否則,拼接副本加數(shù)字
    '''
    newFileName = None
    index = fileName.rfind('.')
    if num==None:
        if index!=-1:
            newFileName = '%s - 副本%s'%(fileName[:index],fileName[index:])
        else:
            newFileName= '%s - 副本'%fileName     
    else:
        if index!=-1:
            newFileName = '%s - 副本 (%s)%s'%(fileName[:index],num,fileName[index:])
        else:
            newFileName= '%s - 副本 (%s)'%(fileName,num)
    return newFileName
        
    


def copy_paste(pathSrc,pathDest):
    # 賦值 粘貼
    fileSrc = open(pathSrc,'rb')
    fileDest = open(pathDest,'wb')

    content = fileSrc.readline()
    while content!=b'':
        fileDest.write(content)
        content = fileSrc.readline()
    

    fileSrc.close()
    fileDest.close()


#執(zhí)行剧辐!
main()
print('媽嗨解恰,終于寫完了')
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锋八,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子护盈,更是在濱河造成了極大的恐慌挟纱,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,496評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腐宋,死亡現(xiàn)場(chǎng)離奇詭異紊服,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)胸竞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,187評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門欺嗤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人卫枝,你說我怎么就攤上這事煎饼。” “怎么了校赤?”我有些...
    開封第一講書人閱讀 157,091評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵吆玖,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我马篮,道長(zhǎng)沾乘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,458評(píng)論 1 283
  • 正文 為了忘掉前任浑测,我火速辦了婚禮媳危,結(jié)果婚禮上和蚪,老公的妹妹穿的比我還像新娘吝沫。我一直安慰自己僵刮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,542評(píng)論 6 385
  • 文/花漫 我一把揭開白布岖圈。 她就那樣靜靜地躺著讹语,像睡著了一般。 火紅的嫁衣襯著肌膚如雪幅狮。 梳的紋絲不亂的頭發(fā)上募强,一...
    開封第一講書人閱讀 49,802評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音崇摄,去河邊找鬼擎值。 笑死,一個(gè)胖子當(dāng)著我的面吹牛逐抑,可吹牛的內(nèi)容都是我干的鸠儿。 我是一名探鬼主播,決...
    沈念sama閱讀 38,945評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼进每!你這毒婦竟也來了汹粤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,709評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤田晚,失蹤者是張志新(化名)和其女友劉穎嘱兼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贤徒,經(jīng)...
    沈念sama閱讀 44,158評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡芹壕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,502評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了接奈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片踢涌。...
    茶點(diǎn)故事閱讀 38,637評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖序宦,靈堂內(nèi)的尸體忽然破棺而出睁壁,到底是詐尸還是另有隱情,我是刑警寧澤互捌,帶...
    沈念sama閱讀 34,300評(píng)論 4 329
  • 正文 年R本政府宣布潘明,位于F島的核電站,受9級(jí)特大地震影響疫剃,放射性物質(zhì)發(fā)生泄漏钉疫。R本人自食惡果不足惜硼讽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,911評(píng)論 3 313
  • 文/蒙蒙 一巢价、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧固阁,春花似錦壤躲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,744評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至并齐,卻和暖如春漏麦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背况褪。 一陣腳步聲響...
    開封第一講書人閱讀 31,982評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工撕贞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人测垛。 一個(gè)月前我還...
    沈念sama閱讀 46,344評(píng)論 2 360
  • 正文 我出身青樓捏膨,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子号涯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,500評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理目胡,服務(wù)發(fā)現(xiàn),斷路器链快,智...
    卡卡羅2017閱讀 134,631評(píng)論 18 139
  • 學(xué)習(xí)處理文件和保存數(shù)據(jù)可以使程序使用起來更容易誉己,用戶將能夠選擇輸入什么樣的數(shù)據(jù), 以及在什么時(shí)候輸入域蜗; 用戶使用你...
    路_堯知百戰(zhàn)勝閱讀 639評(píng)論 0 0
  • 定義類并創(chuàng)建實(shí)例 在Python中巫延,類通過 class 關(guān)鍵字定義。以 Person 為例地消,定義一個(gè)Person類...
    績(jī)重KF閱讀 3,931評(píng)論 0 13
  • 學(xué)習(xí)的歷史的樂趣在于三點(diǎn):一炉峰、歷史總是充滿著戲劇性;二脉执、歷史不容假設(shè)疼阔;三、歷史往往有驚人的相似性半夷。 回顧歷史婆廊,好多...
    神之巫師閱讀 1,709評(píng)論 0 1
  • 老鄉(xiāng)曉雪淘邻,和男友交往已經(jīng)五年了。這五年里湘换,曉雪的男友從未說過要娶她宾舅,也未說過不娶她。每次曉雪提及婚姻的事彩倚,他不是敷...
    只懂女人心閱讀 902評(píng)論 0 1