一、通過sys模塊獲取當前文件名
Python的sys模塊提供了一種獲取當前文件名的方法。通過sys模塊可以獲取執行Python腳本的相關信息,並且可以直接獲取當前文件的所有信息。下面是獲取文件名的示例代碼:
import sys print(sys.argv[0])
上述代碼使用sys.argv[0]獲取了當前腳本的文件名。該方法返回的是當前腳本的絕對路徑。
如果只需要獲取文件名而不需要路徑,則需要使用os.path.basename()方法。下面是示例代碼:
import sys import os print(os.path.basename(sys.argv[0]))
上述代碼將sys.argv[0]傳遞給os.path.basename()方法,然後返回當前腳本的文件名。
二、通過__file__屬性獲取當前文件名
Python中的__file__屬性是另一種獲取當前文件名和文件路徑的方法。下面是獲取文件名的示例代碼:
import os print(os.path.basename(__file__))
上述代碼使用os.path.basename()方法獲取了當前文件的文件名,其中__file__是Python內置的變量,表示當前腳本的文件名,可以直接在代碼中使用。
需要注意的是,當Python腳本被打包成可執行文件時,__file__屬性的值會發生變化。此時可以使用sys.argv[0]獲取當前文件名。
三、通過inspect模塊獲取當前文件名
除了sys和os模塊之外,Python還提供了inspect模塊,它可以用來獲取當前文件名的信息。下面是獲取文件名的示例代碼:
import inspect print(inspect.getframeinfo(inspect.currentframe()).filename)
上述代碼使用inspect模塊的getframeinfo()方法獲取了當前文件名。getframeinfo方法接受一個frame對象作為參數,可以通過inspect.currentframe()獲取當前frame對象,並將其傳遞給getframeinfo()方法。
需要注意的是,getframeinfo()方法僅適用於調試和分析代碼,不應該在生產環境中使用。
四、通過os.path.split()方法獲取當前文件名
Python中的os.path.split()方法可以用來將路徑分成路徑名和文件名兩部分。下面是示例代碼:
import os print(os.path.split(__file__)[1])
上述代碼使用os.path.split()方法將當前文件的路徑分成路徑名和文件名兩部分,並返迴文件名。
需要注意的是,在某些操作系統中,路徑分隔符可能不同。因此,在使用os.path.split()方法時,最好先使用os.path.normpath()方法將路徑標準化。
五、通過pathlib模塊獲取當前文件名
Python 3.4及以後版本中,pathlib模塊提供了一種更加簡單和直觀的方法來操作文件系統路徑。下面是獲取文件名的示例代碼:
import pathlib print(pathlib.Path(__file__).name)
上述代碼使用pathlib的Path對象獲取當前文件的文件名,其中__file__是Python內置的變量,表示當前腳本的文件名,可以直接在代碼中使用。
需要注意的是,在使用pathlib模塊時,需要將文件路徑作為參數傳遞給Path對象,並使用name屬性獲取文件名。
六、小結
Python提供了多種方法來獲取當前文件的文件名。使用sys模塊、__file__屬性、inspect模塊、os.path.split()方法和pathlib模塊都可以獲取相同的結果。需要根據具體的需求選擇最適合自己的方法。
原創文章,作者:QSRIW,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/372776.html