眾所周知,Python是編程語言的一種,利用Python可以做很多的文件處理。那么Python如何處理文件的?有時,組織文件可能需要的不僅僅是了解其擴展名。例如,獲取所有文件均為同一類型的目錄。.pdf,.doc,.mp4等。假設您有一個包含幻燈片的文件夾(.ppt)。在這種情況下,您剛剛收到了大量的演講文件,但要閱讀它們并不容易。因此,他們沒有為第一堂課準備一張包含所有內容的幻燈片,而是將它們分解為一個會議的幻燈片。在這種情況下,假定我們的文件夾如下所示。
Python如何處理文件的?
DataStructures/
|_Datastructuressession1Slide1.ppt
|_Datastructuressession1Slide2.ppt
|_Datastructuressession1Slide3.ppt
|_Datastructuressession2Slide3.ppt
|_Datastructuressession7Slide8.ppt
|_Datastructuressession9Slide2.ppt
... and so on
發生了什么?我們把幻燈片放好了,但是一團糟。您將不得不在文件夾中瀏覽一份特定的幻燈片,該幻燈片從您剛剛閱讀的位置開始。我們應該使它更容易些,讓我們根據會議安排所有幻燈片。
還記得上一篇文章中我們如何生成隨機文件嗎?我們將做同樣的事情,只是這一次,所有文件都是相同的類型。快來看看這里。我們的文件看起來很像create_random_files.py。
#!/bin/python3# create_lectures.pyimport osfrom pathlib import Path
sessions = [str(x) for x in range(1,21)] # create 20sessions
sessions = [str(0)+item if int(item) < 10 else item for item in sessions]# Datastructuressession01Slide1.ppt# get into the DataStructures directory
os.chdir('./DataStructures')for item in sessions:
# create 20 slides for each session
for num in range(21):
file_to_create = f"Datastructuressession{item}Slide{num}.ppt"
Path(file_to_create).touch()
好吧好吧。我承認這次我對文件的數量有些不滿。那是相當數量。
讓我們注意這一行:
sessions = [str(0)+item if int(item) < 10 else item for item in sessions]
在此之前的行列出了二十個數字,但這是要注意的問題,我們將這些數字中的每個數字轉換為字符串。為什么?
如果確實小于10,我們會將數字0作為字符串附加到每個數字之后,這將使較低10范圍內的每個數字看起來像這樣;01、02、03等。
上面,我們為20個會話范圍內的每個會話創建了許多文件。
接下來,我們很簡單,根據會話將這些文件分組。
# clean_reading.py#!/bin/python3# move files to directories according to the file name patternimport osimport shutil# get into the Datastructures directory
os.chdir('./DataStructures')# Datastructuressession01Slide1.pptfor f in os.listdir("."):
folder_name = f[14:23]
# print(folder_name)
if not os.path.exists(folder_name):
os.mkdir(folder_name)
shutil.move(f, folder_name)
else:
shutil.move(f, folder_name)
可能需要解釋的唯一一行是:
folder_name = f[14:23]
我們已經計算了想要以文件夾命名的名稱種類的字符數。在這種情況下,我們分解了文件名的字符串
Datastructuressession01Slide1.ppt
從我們那里得到的第一個s會話是字符號14在整個字符串中,而最后一次會話計數將是字符編號23從我們生成的文件中翻譯出來將意味著數字的最后一位 20。
運行此命令可使我們的所有幻燈片在各自的會話中快速,干凈地進行。
人們還有很多想做的事情,比如說讓程序知道在沒有字符位置手動輸入的情況下包括了哪些會話,但是存在更高級的工具,尤其是在UNIX環境下。
隨意進行探索,找到最適合您的方法。請注意,這是一個使用python制作的很棒的GUI 分揀器。
以上即是關于Python如何處理文件的全部內容,想了解更多關于Python的信息,請繼續關注中培偉業。