個人簡介
作者簡介:大傢好,我是姐姐劃船嗎?運維領域創作者,阿裡雲ACE認證高級工程師
✒️個人主頁:姐姐劃船嗎?
支持我:點贊+收藏⭐️+留言
格言:你未必出類拔萃,但一定與眾不同!
系列專欄:
階段一:windows基礎
階段二:Linux基礎知識
階段三:shell基礎+shell高級
階段四:學會python,逆天改命
階段五:Linux網絡服務
階段六:集群原理及架構
階段七:雲計算虛擬化技術
學習目標:
✏️ 瞭解 os 模塊對文件操作 ✏️ 瞭解 OS 對文件夾的相關操作: ✏️ 瞭解批量創建文件和修改文件名 ✏️ 瞭解Python 換行符問題 |
目錄
1、python中的os 模塊
1.1使用 os 模塊對文件操作
1.1.1使用 os 模塊對文件重命名 rename()
1.1.2使用 os 模塊對刪除文件 remove()
1.2使用 OS 對文件夾的相關操作:
1.2.1創建文件夾
1.2.2創建多層目錄
1.2.3獲取當前目錄
1.2.4改變默認目錄
1.2.5獲取目錄列表,包含文件和目錄
1.2.6刪除文件夾
1.3批量創建
1.4批量修改文件名
2.Python 換行符問題
2.1Python 換行符問題:
2.2python中對於長句子換行的問題
結束語
1、python中的os 模塊 1.1使用 os 模塊對文件操作
有些時候,需要對文件進行重命名、刪除等一些操作,Python 的 os 模塊中都有這麼功能
1.1.1使用 os 模塊對文件重命名 rename()
rename(需要修改的文件名, 新的文件名)
import os os.rename(” 程序猿自身修養.txt”, ” 程序員自身修養.txt”) |
概述
os.rename() 方法用於命名文件或目錄,從 src 到 dst,如果dst是一個存在的目錄, 將拋出OSError。
語法
rename()方法語法格式如下:
os.rename(src, dst)
參數
src — 要修改的目錄名
dst — 修改後的目錄名
返回值
該方法沒有返回值
實例
以下實例演示瞭 rename() 方法的使用:
#!/usr/bin/python# -*- coding: UTF-8 -*-import os, sys# 列出目錄print "目錄為: %s"%os.listdir(os.getcwd())# 重命名os.rename("test","test2")print "重命名成功。"# 列出重命名後的目錄print "目錄為: %s" %os.listdir(os.getcwd())
執行以上程序輸出結果為:
目錄為: [ ‘a1.txt’,’resume.doc’,’a3.py’,’test’ ] 重命名成功 [ ‘a1.txt’,’resume.doc’,’a3.py’,’test2′ ] |
1.1.2使用 os 模塊對刪除文件 remove()
remove(待刪除的文件名)
import os os.remove(” 程序員自身修養.txt”) |
概述
os.remove() 方法用於刪除指定路徑的文件。如果指定的路徑是一個目錄,將拋出OSError。
在Unix, Windows中有效
語法
remove()方法語法格式如下:
os.remove(path)
參數
path — 要移除的文件路徑
返回值
該方法沒有返回值
實例
以下實例演示瞭 remove() 方法的使用:
#!/usr/bin/python# -*- coding: UTF-8 -*-import os, sys# 列出目錄print "目錄為: %s" %os.listdir(os.getcwd())# 移除os.remove("aa.txt")# 移除後列出目錄print "移除後 : %s" %os.listdir(os.getcwd())
執行以上程序輸出結果為:
目錄為: [ ‘a1.txt’,’aa.txt’,’resume.doc’ ] 移除後 : [ ‘a1.txt’,’resume.doc’ ] |
1.2使用 OS 對文件夾的相關操作: 1.2.1創建文件夾
不能創建./張三/test/hehe
import os os.mkdir(” 張三”) |
1.2.2創建多層目錄
import os os.makedirs(” 張三/ 李四/ 王二”) |
1.2.3獲取當前目錄
import os os.getcwd() |
1.2.4改變默認目錄
進入到某個目錄,或者是切換目錄
import os os.chdir(“./../”) |
1.2.5獲取目錄列表,包含文件和目錄
import os print(os.listdir(“./”)) |
1.2.6刪除文件夾
刪除目錄 path,要求 path 必須是個空目錄,否則拋出 OSError 錯誤
import os os.rmdir(” 張三”) |
刪除不為空的目錄
import shutil shutil.rmtree(“aa”) |
1.3批量創建
import os os.mkdir(“./test”) os.chdir(“./test”) print(os.getcwd()) i = 1 while i<=10: open(“人民的名義-%d.avi”%i,”w”) i+=1 print(“創建完畢”) |
1.4批量修改文件名
import os os.chdir(“./test”) i = 1 while i<=10: os.rename(“人民的名義-%d.avi”%i,”[宏福出品]-人民的名義-%d.avi”%i) i+=1 |
import os #得到要批量修改的目錄名 folder = input(“請輸入您要批量修改的文件目錄名稱:”) os.chdir(folder) #得到文件夾下所有文件名 fileNames = os.listdir() #遍歷文件夾下所有文件並修改名稱 for fileName in fileNames: print(fileName) #新名字 newFileName = “[宏福出品]-“+fileName os.rename(fileName,newFileName) print(“重命名後的文件:”) for fileName in os.listdir(): print(fileName) |
2.Python 換行符問題 2.1Python 換行符問題:
先知道結果:
在 linux 和 mac 系統上我們讀寫文本文件使用二進制方式或者文本方式都可以,因為在處理\n 都是一樣的;那麼讀寫文本文件和二進制文件的時候,可以使用 r 和 w 模式或者 rb 和 wb 模式。
在 window 中的換行是\r\n,當我們使用程序以文本方式寫入一個\n 的時候,默認會幫我們加上\r,這樣打開文件的時候才能得到換行的效果;
所有在 window 上讀寫文本文件的時候, 建議使用 r 或者 w 模式。
在讀寫二進制文件的時候,建議用 rb 和 wb 模式。
不同操作系統換行符是不一樣的
在處理文本數據的時候體現在不同操作系統處理\r\n 是不一樣的
不同操作系統 換行符是不一樣的
linux –>\n unix–>\n mac–> 老版本(\r)–>\n windows –>\r\n |
對應換行符 windows 遇到\r\n 才換行顯示
2.2python中對於長句子換行的問題
首先明確兩個概念,物理行和邏輯行。
物理行
物理行是指語句在文本編輯中的一行
邏輯行
邏輯行則是python語句在python編譯器裡的一行。所以有些很長的語句,為瞭方便閱讀,我們可以把它放到不同的物理行中。但是python在特定情況仍然會把不同物理行當作一個邏輯行,在這種python的編譯器會自動將物理行中的換行符去掉。一般情況下,在[],(),{}中的不同物理行都會被當成一個邏輯行看待。例如:
a = [1,2,3,4,5]print(a)[1, 2, 3, 4, 5]a = [1,2, 3,4,5] # 這個是 [] 內部的換行編譯器自動處理為一個邏輯行print(a)[1, 2, 3, 4, 5]
甚至可以在括號內加註釋,例如:
a = (1,#註釋可以放在這 2, 3)print(a)(1, 2, 3)a = {'key1':1, # 這是一個{} 的例子 'key2':2}print(a){'key1': 1, 'key2': 2}a = {'key1'# 也可以這樣用 :1, 'key2':2}print(a){'key1': 1, 'key2': 2}
函數的參數由於是在()之內,所以也可以這樣操作
def my_fun(a, #函數也可以這樣斷行 b,c): print(a,b,c)my_fun(10,20,30)my_fun(10,# 也可以這樣調用 20, 30)10 20 3010 20 30
但是如果在非括號中,則需要用 \ 當作轉義符,例如:
a = 20b = 30c = 40if a>5 and b>10 and c>20: print('a={},b={},c={}'.format(a,b,c))# 也可以這樣寫if a>5 \and b>10 \ and c>20: #註意,這裡 \ 後的縮進並不重要,因為編譯器把這多個物理行當成一個邏輯行瞭 print('a={},b={},c={}'.format(a,b,c))a=20,b=30,c=40a=20,b=30,c=40
對於字符串,如果用三個單引號,或者三個雙引號包括的字符串,那麼中間的所以換行符都會保留,例如:
a = '''this is a string'''a'this is a string'print(a)this is a stringa = '''this isa string''' # 這裡 is後邊的換行符將被保留a # 註意is 後邊的換行符\n'this is\na string'print(a) # 打印出來的話,註意是兩行this isa string
如果不想保留換行符,需要用單引號”,但是需要轉義符 \,如下:
a = 'this is \a string'a # 註意a中沒有換行符'this is a string'print(a) # a中沒有換行符this is a string
如果需要在字符串中包含 \,則需要用 \\。
a = 'this is a \\ string' #用 \\ 來表示\a # 這時候看到兩個 \ (\\),但是不要慌,因為print出來就對瞭'this is a \\ string'print(a) # print a之後,隻有一個 \this is a string
結束語
喜歡的請來個三連支持一下吧,謝謝謝謝!!!
您的支持是我最大的動力!!!