這是一個python3.5對文件操做的整理,裏面有複製/更名/覆蓋輸入/追加輸入等等。python

 

前提:在E盤的PythonAAA/A的文件夾下,有一個123.txtwindows

1)覆蓋輸入ide

1
2
3
4
5
>>> import  os     #啓動模塊
>>>f = open ( "e:/PythonAAA/A/123.txt" , "w+" )     #打開目標文件,w+是以讀寫方式打開,同r+
>>>f.write( "我愛北京天安門" )     #寫入內容就是歌詞
7
>>>f.close()     #關閉文件,這一步相當重要!有開有關。

【補充】若是在改路徑下沒有123.txt這個文件,那麼這樣就會直接生成123.txt這個文件。spa

這種f=open的方式在打開文件以後必定要close(),否則這個文件一直會在後臺運行,windows下使用ctrl+alt+del下是能夠看到這個進程的,若是總以爲本身會忘記close(),可使用with as方法,上面的句子能夠這麼寫:code

1
2
>>>with  open ( "e:/PythonAAA/A/123.txt" ) as f:
f.write( "我愛北京天安門" )

 

2)追加輸入blog

若是是with as方法打開文件的話, 那麼write默認都是追加輸入,好比進程

1
2
>>> with  open ( "e:/PythonAAA/A/123.txt" , "a" ) as f:
     f.write( "\n 偉大領袖毛主席 \t 帶領咱們向前進" )   #\n和\s效果本身看

效果以下:ci

wKiom1corYHztJdSAAAhusfCu0w616.png

若是要用f=的方法,那麼第一行要f=open("e:/PythonAAA/A/123.txt","a") ,這裏a就是add的意思。rem

 

3)文件更名get

若是想要把這個 123.txt改爲456.txt,很簡單,一句話就能作到。

1
2
>>>  import  os
>>> os.rename( "e:/PythonAAA/A/123.txt" , "e:/PythonAAA/A/456.txt" )

這個效果立竿見影。

 

4)文件複製

想要把e:/PythonAAA/A/123.txt複製到e:/PythonAAA/B這個文件夾裏,一樣叫123.txt。

1
2
>>>  import  shutil
>>> shutil.copy( "e:/PythonAAA/B/123.txt" , "e:/PythonAAA/A/123.txt" )

【補充】這個語句的前提是必需要有B這個文件夾,否則的話,會報錯。

 

5)目錄刪除

e:/PythonAAA/B/C這個文件夾不想要了,刪除之。

1
2
>>>  import  shutil
>>> shutil.rmtree( "e:/PythonAAA/B/C" )

 

6)文件刪除

e:/PythonAAA/B/456.txt這個文件不想要了,刪除之。

1
2
>>>  import  os
>>>  os.unlink( "e:/PythonAAA/B/456.txt" )

os.remove效果也同樣,語句也同樣。

 

7)文件剪切粘貼

e:/PythonAAA/B/123.txt剪貼粘貼到e:/PythonAAA/A/123.txt。

1
2
>>>  import  shutil
>>> shutil.move( "e:/PythonAAA/B/123.txt" , "e:/PythonAAA/A/123.txt" )

 

8)綜合練習

要求把e:/PythonAAA/A裏全部.py文件都複製到e:/ABC/CBA這個文件夾裏。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>>  import  os
>>> os.makedirs( "e:/ABC/CBA" )     #創建/ABC/CBA這個文件夾,若是是一層文件夾os.mkdir就行
>>>  def  copyFiles(sourceDir,targetDir):
     for  files  in  os.listdir(sourceDir):
         sourceFile  =  os.path.join(sourceDir,files)
         targetFile  =  os.path.join(targetDir,files)
         try :
             if  os.path.isfile(sourceFile)  and  sourceFile.find( '.py' )> 0 :
             #能夠試試不加>0的後果
                 shutil.move(sourceFile,targetFile)
         except  FileNotFoundError:
             print ( "此文件夾不存在,請從新檢查!" )
             
>>> copyFiles( "e:/PythonAAA/B" , "e:/ABC/CBA" )

要麼無錯誤輸出,要麼就會有多少個.py文件就會返回多少次「此文件夾不存在,請從新檢查!」