快速尋找檔案
根據檔案名字匹配, 根據檔案內容匹配
#!/usr/bin/env python# -*- coding: utf-8 -*-import os
import re
class
quicksearchfile:
'''快速尋找檔案
'''def file_name_search(self, file_dir_path, keyword):
'''檔案名字匹配
'''search_result_array =
for root, dirs, files in
os.walk(file_dir_path):
# root 表示當前正在訪問的資料夾路徑
# dirs 表示該資料夾下的子目錄名list
# files 表示該資料夾下的檔案list
# 針對當前目錄
for file_name in
files:
ifre.search(keyword, file_name):
search_result = os.path.join(root, file_name).replace('
\\', '/'
)
return
search_result_array
def file_content_search(self, file_dir_path, keyword):
'''檔案內容匹配
'''search_result_array =
for root, dirs, files in
os.walk(file_dir_path):
for file_name in
files:
file_path =os.path.join(root, file_name)
print(
'----- 正在檢索{} -----
'.format(file_path))
try:
with open(file_path, 'rb
') as
f: content = f.read().decode("
utf8
", '
ignore
') # utf-8
, gbk
f.close()
# 匹配
ifre.search(keyword, content):'\\
', '/'
)) except exception
ase:
print(
'---- file_path: {} 不是可開啟的檔案 -----
'.format(file_path))
return
search_result_array
if __name__ == '
__main__':
obj =quicksearchfile()
search_file_type = input('
1: file_content(檔案內容匹配), 2: file_name(檔名稱匹配) 請輸入搜尋檔案型別[1-2]: ')
while
true:
if str(search_file_type) in ['
1', '2'
]: file_dir_path = input('
請輸入搜尋檔案所在的目錄: ')
if not file_dir_path: file_dir_path = '
/data/strategy/redis2mysql4decompression
'# 測試
keyword = input('
請輸入需要搜尋的內容: ')
if str(search_file_type) == '1'
: search_result_array =obj.file_content_search(file_dir_path, keyword)
print(
'返回結果: 關鍵字keyword: {}, 所在的所有檔案列表: {}
'.format(keyword, search_result_array))
elif str(search_file_type) == '2'
: search_result_array =obj.file_name_search(file_dir_path, keyword)
print(
'返回結果: 關鍵字keyword: {}, 所在的所有檔案列表: {}
'.format(keyword, search_result_array))
else
: print(
'請重新輸入, 選擇[1-2]
')
快速尋找控制項的id
在實際專案的activity中,往往我們要通過findviewbyid方法去尋找控制項的id。介面的控制項越多,我們就要與之對應的寫一次findviewbyid。是不是覺得有點煩惱,那麼有沒有優雅點的方法來解決這個問題呢。答案是肯定的,你可以選擇一些開源框架尋找控制項的id,如butterknife...
如何用Python尋找重複檔案並刪除
在實際生活中,經常會有檔案重複的困擾,即同乙個檔案可能既在a目錄中,又在b目錄中,更可惡的是,即便是同乙個檔案,檔名可能還不一樣。在檔案較少的情況下,該類情況還比較容易處理,最不濟就是one by one的人工比較 即便如此,也很難保證你的眼神足夠犀利。倘若檔案很多,這豈不是個impossible ...
關於快速尋找素數的方法
利用素數篩選法進行素數的快速查詢。原理很簡單,素數一定是奇數,素數的倍數一定不是素數。思路如下 預定義n表示10000,即表示查詢10000以內的素數,首先定義陣列prime對n以內的數進行標記,奇數存為1,偶數存為0,最終實現結果為素數的prime值為1,因此將prime 2 賦值為1 2是素數 ...