聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

環球熱議:python程序接收命令行參數的方式及步驟

來源:CSDN 時間:2023-04-06 10:15:20

一、實驗目的


【資料圖】

熟練運用標準庫os和os.path中的函數,理解sys庫中argv成員用法,理解python程序接收命令行參數的方式,理解遞歸遍歷目錄樹的原理。 編寫程序,實現磁盤垃圾文件清理功能。要求程序運行時,通過命令行參數指定要清理的文件夾,然后刪除該文件夾及其子文件夾中所有擴展名為tmp、log、obj、txt 以及大小為0 的文件。

二、實驗環境

Python3.8

三、實驗基本原理及步驟

1. 查看幫助手冊,了解os.path模塊中的isdir,join,splitext,getsize方法,以及os庫中的remove,listdir方法。

連接兩個路徑 如果路徑名引用現有目錄,則返回true 從文件名中分割出擴展名 返回文件的大小 刪除一個文件 返回包含目錄中文件名稱的列表 **sys.argv()**函數 獲取運行python文件的時候命令行參數 更詳細易懂的描述在:

2. 編寫一個函數,該函數帶有一個參數為指定的文件夾。函數刪除該文件夾及其子文件夾中所有指定的文件類型。

3. 程序示例輸出如下:

運行程序之前:

運行程序之后:

四、實驗數據記錄(或仿真及軟件設計)

程序及運行結果:

# -*- coding: utf-8 -*-"""Created on Sun May 31 17:00:08 2020@author: natur"""#檢查路徑是否為文件,不是就檢查文檔下的文件是否為文檔,重復循環#編寫一個函數,該函數帶有一個參數為指定的文件夾。函數刪除該文件夾及其子文件夾中所有#指定的文件類型。from os.path import isdir,join,splitext,getsizefrom os import remove,listdirimport sysdef Delete(path):    if isdir(path)== True:        for item in listdir(path):            item = join(path,item)            if isdir(item) == False:                if splitext(item)[1] in extension or getsize(item) == 0:                    remove(item)                    print(item,"deleted")            else:                Delete(item)                extension = [".tmp", ".log", ".obj", ".txt"]path = sys.argv[1]Delete(path)

思路: 利用 os.path.isdir()函數路徑是否為文檔,再利用 os.listdir()得到路徑下的文件列表,是就循環檢查文檔下的文件列表中是否又有文檔,如果是則迭代創建的函數;如果不是,則為文件,利用 os.path.splitext()函數分割出擴展名,判斷它的擴展名是否在我們的需求內,或者利用os.path.getsize()函數得到文件大小,判斷是否為0,如果兩個條件滿足一個,則利用 os.remove()刪除該文件,并將其路徑利用 os.path.join()函數將文件路徑以及文件結合進行輸出。文件路徑的得知主要依靠 sys.argv()[1]函數,通過命令行得到

責任編輯:

標簽:

相關推薦:

精彩放送:

新聞聚焦
Top 岛国精品在线