Python如何處理檔案的?

zhongpeijiaoyu發表於2020-07-22

  眾所周知,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(“.”):www.zpedu.com

  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 分揀器。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章