Python如何查找特定名稱文件
Python查找特定名稱文件
問題描述
遍歷“Day1-homework”目錄下文件;
找到文件名包含“2020”的文件;
將文件名保存到數(shù)組result中;
按照序號、文件名分行打印輸出。
result = [] i = 0 for root,dirs,files in os.walk('Day01-homework/'): ?? ? ? #指定目錄,返回一個三元組(起始路徑,起始路徑下的文件夾名,起始路徑下的文件名),其中第一個是string,后兩個是list ?? ?for file_name in files: ?? ??? ?if "2020" in file_name: ? ? ? ? ? ? ? ?#查找2020字符串是否在文件名里,使用find好像不行?? ??? ?? ?? ??? ??? ?result = [os.path.join(root,file_name).replace('\\','/')] ? ? ? ? ?? ??? ??? ?#join進行字符串拼接,replace將\用/替代,其中'\\'是轉(zhuǎn)義字符 ?? ??? ??? ?i += 1 ?? ??? ??? ?j = [i] ?? ??? ??? ?print(j + result)
其中os.walk()方法是從當前python文件的目錄里查找某一文件。
結(jié)果如下:
[1, 'Day01-homework/18/182020.docx']
[2, 'Day01-homework/26/26/new2020.txt']
[3, 'Day01-homework/4/22/04:22:2020.txt']
python查找指定格式文件并復(fù)制到指定目錄
1、需求
在linux 系統(tǒng)下,會對一些應(yīng)用代碼進行編譯,生成".a"、".so"一類的文件到不同的目錄和文件夾下,最后在調(diào)用時需要把他們放一個目錄中,如果手動用指令實現(xiàn)非常不方便,現(xiàn)通過python來已經(jīng)快速實現(xiàn)。
小記:
- .a文件,是LINUX系統(tǒng)中的靜態(tài)鏈接庫文件。
- .so文件, 是LINUX系統(tǒng)中的動態(tài)鏈接庫,名字形式多為 “libxxx.so” 后綴名為 “.so”
2、實現(xiàn)
以下是通過 查找某個文件夾下".h"文件的例子,找到后加入到list中,再通過【復(fù)制】或【剪切】函數(shù)到指定目錄,代碼如下:
import os, shutil file_list = [] # 搜索函數(shù)--可搜索指定目錄上的文件夾下的文件。 def search_file(root, target): ? ? for file in os.listdir(root): ? ? ? ? path = root ? ? ? ? try: ? ? ? ? ? ? path = path + os.sep + file ? ? ? ? ? ? if os.path.isdir(path): ? ? ? ? ? ? ? ? search_file(path, target) ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? if file.split('.')[-1] == target: ? ? ? ? ? ? ? ? ? ? file_list.append(path) ? ? ? ? except PermissionError as e: ? ? ? ? ? ? print(e) ? ? return file_list # 批量移動函數(shù) def move_file(file_list, dest): ? ? for file in file_list: ? ? ? ? try: ? ? ? ? ? ? shutil.move(file, dest) ? ? ? ? except shutil.Error as e: ? ? ? ? ? ? print(e) # 批量復(fù)制函數(shù) def move_file(file_list, dest): ? ? for file in file_list: ? ? ? ? try: ? ? ? ? ? ? shutil.opy(file, dest) ? ? ? ? except shutil.Error as e: ? ? ? ? ? ? print(e) # 寫入目標參數(shù)root, def main(): ? ? # ---- windows ? ? # root = "D:\\pic1" ? ? # target = "png" ? ? # dest_dir = "D:\\ABC\\pic2" ? ? # -- linux -- ? ? root = "/home/dsoftbus/cpp/pycopy" ? ? target = "h" ? ? dest_dir = "/home/dsoftbus/copy_file_h" ? ? result = search_file(root, target) ? ? print(result) ? ? # 剪切文件 ? ? # move_file(result, dest_dir) ? ? # 復(fù)制文件 ? ? copy_file(result,dest_dir) ? ? print("復(fù)制成功??!") if __name__ == '__main__': ? ? main()
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python調(diào)用系統(tǒng)命令os.system()和os.popen()的實現(xiàn)
這篇文章主要介紹了Python調(diào)用系統(tǒng)命令os.system()和os.popen()的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12python中parser.add_argument()用法實例(命令行選項、參數(shù)和子命令解析器)
最近開始讀論文代碼了,遇到一個名字叫option的py文件,打開一看清一色的parser.add_argument(),看得是一臉懵逼,這篇文章主要給大家介紹了關(guān)于python中parser.add_argument()用法的相關(guān)資料,需要的朋友可以參考下2022-03-03python?selenium實現(xiàn)登錄豆瓣示例詳解
大家好,本篇文章主要講的是python?selenium登錄豆瓣示例詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下2022-01-01