網(wǎng)站首頁 編程語言 正文
說明:日常工作中,我們經(jīng)常會遇到這樣的場景:核對A、B文件夾中文件的差異,找出A、B文件夾中不同部分的文件;
本文介紹如何使用Python來實現(xiàn);
第一步:獲取文件清單
首先,我們要獲取到兩個文件夾的所有文件名清單,這里假設(shè)A、B文件夾里面放的都是文件夾,沒有多級目錄。
如上,A、B文件夾大部分文件都是同名的,只有部分文件有差異;
獲取文件夾內(nèi)的文件清單,有兩種方法:
- 第一種:在目錄內(nèi)打開CMD,敲dir,把文件名案按列選中,復(fù)制下來;
有一種快一點的辦法,可以不用按住拖動,選擇左上角的字符,按shift
選中,然后就可以松開了,再拉動滾動條到右下角的字符,按住shift + alt
,再點一下字符。就可以選中這一塊的內(nèi)容。
- 第二種:第一種方式,在文件量巨大的時候,命令窗口可能會打印很久,而且還會清除上面的信息,找不到開頭的內(nèi)容。這時,可以輸入下面這行CMD命令,表示把當(dāng)前目錄的文件信息打印到1.txt文件里;
dir > 1.txt
生成文件后,就可以隨便操作了。
最終,我們可以得到兩個文件夾內(nèi)所有的文件清單,如下:
注意:文件內(nèi)可能有一些空白字符,需要選中空白字符,然后將空白字符替換成空;
最后,再按列在文件前面添加一個英文單引號(‘),文件末尾添加一個英文單引號+英文逗號(’,),去掉末尾的英文逗號。
建議使用shfit + alt的方式來按列選中,比較方便。
另外,如果文件名長度不一,可以使用正則表達(dá)式的查找模式。首先分析,我們需要在每行的末尾,換行前加上英文單引號 + 英文逗號(‘,),換行后在行首加上英文單引號(’),可以按照下面這樣替換。這種方式需要ctrl + a,全選之后再替換。
第二步:編寫程序
有了各自文件夾的文件清單,寫一個Python腳本,對這兩部分文件清單進(jìn)行遍歷判斷,輸出對應(yīng)的文件名即可;
# 文件夾A的文件清單
list1 = [
]
# 文件夾B的文件清單
list2 = [
]
print("文件夾A中,但不在文件夾B中的文件:")
for i in list1:
if i not in list2:
print('【' + i + '】')
print("==============================================")
print("文件夾B中,但不在文件夾A中的文件:")
for i in list2:
if i not in list1:
print('【' + i + '】')
然后將文件清單復(fù)制到各自的list中即可,如下:
執(zhí)行結(jié)果如下:
總結(jié)
這只是一種簡單的應(yīng)用,像其他的,如給一個文件清單,把某文件夾中在這個清單內(nèi)的文件復(fù)制/拷貝出來,沒有的打印出來,也是可以實現(xiàn)的。重要的是要有一種思維,重復(fù)的事情交給程序做。
原文鏈接:https://blog.csdn.net/qq_42108331/article/details/134806045
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2023-02-09 Python如何提取html中文本到txt_python
- 2023-04-04 numpy中的norm()函數(shù)求范數(shù)實例_python
- 2022-06-04 C++求解二叉樹的下一個結(jié)點問題_C 語言
- 2023-01-31 C#實現(xiàn)偽裝文件夾功能_C#教程
- 2022-02-13 css 文本超出部分顯示省略號
- 2022-03-31 Go中變量命名規(guī)則與實例_Golang
- 2022-08-30 Springcloud--Ribbon組件來實現(xiàn)服務(wù)調(diào)用的負(fù)載均衡
- 2022-05-17 Python的集合類型之set和frozenset詳解_python
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支