黑客網(wǎng)站網(wǎng)站鏈接查詢
本章,來(lái)說(shuō)說(shuō),個(gè)人寫(xiě)代碼過(guò)程中,對(duì)于文件管理常用的幾種操作。
三個(gè)維度
1、指定文件的路徑拼接
2、檢查某文件是否存在
3、配置文件的路徑管理
1、指定文件的路徑拼接
這個(gè)操作可以用來(lái)管理文件路徑也就是上述中的第三點(diǎn)。但是,這里會(huì)講到不一樣的方式
os.path.abspath(os.path.dirname(os.path.abspath(__file__))+'\..')
上述是最常見(jiàn)的一種路徑獲取方式,主要獲取的是父級(jí)地址。這種方式在純代碼上沒(méi)有什么問(wèn)題,但是打包后,這就是個(gè)問(wèn)題了。在很多時(shí)候,這樣獲取路徑會(huì)報(bào)錯(cuò),找不到某某模塊等。
所以,可以使用如下的方式:
os.path.realpath(os.path.dirname(sys.argv[0]))
有什么好處?
這樣的方式,在不同的層級(jí)下,不需要再次重新進(jìn)行拼裝,只需要在執(zhí)行文件中執(zhí)行即可,會(huì)自動(dòng)識(shí)別到你所調(diào)用的路徑層級(jí)。
#?run.py
#?文件路徑層級(jí):最外層
import?os
import?syssys_?=?os.path.realpath(os.path.dirname(sys.argv[0]))
#?B.py
#?文件路徑層級(jí):Functions/B.py
from?run?import?sys_print(sys_?+?"\\"?+?"執(zhí)行文件.log")
"""D:\case\Functions\執(zhí)行文件.log"""
2、檢查某文件是否存在
這個(gè)操作應(yīng)該可以說(shuō)是比較常用的了吧,實(shí)際用途:檢查指定路徑下的log文件是否生成,檢查某個(gè)路徑下的是否有圖片存在。數(shù)據(jù)處理完成后,是否重新生成了數(shù)據(jù)文件。
import?osdef?GetFile(path):if?os.path.exists(path):?os.remove(path)if?__name__?==?'__main__':path?=?r"D:\弧形.csv"GetFile(path=path)
os.path.exists(file_path) 用于檢查文件是否存在。
os.remove(path)用于刪除文件,可以用來(lái)完成其他操作
其他方法
對(duì)于第二點(diǎn),還有個(gè)操作就是使用第三方模塊,pathlib也可以。至于選擇上,看個(gè)人喜好即可。
from?pathlib?import?Pathdef?check_and_delete_file(path,?filename):#?創(chuàng)建Path對(duì)象file_path?=?Path(path)?/?filename#?檢查文件是否存在if?file_path.exists():#?刪除文件file_path.unlink()print(f"文件?{filename}?已被刪除")
3、配置文件的路徑管理
到了這里,就不用再多說(shuō)了,結(jié)合第一項(xiàng),不論使用哪種方式方法,都可以進(jìn)行管理,怎么便捷怎么來(lái)即可。