導航:首頁 > 編程語言 > 用python查找資料

用python查找資料

發布時間:2022-08-21 02:07:56

⑴ 如何使用python遞歸查找並刪除某個目錄下的文件

importos,fnmatch

defsearch(pattern,root=os.curdir):
forpath,dirs,filesinos.walk(os.path.abspath(root)):
forfilenameinfnmatch.filter(files,pattern):
yieldos.path.join(path,filename)

forxinsearch("xxx.*"):
print"Deleting%s"%x
os.remove(x)

⑵ 如何用Python,查找json格式中指定的數據,然後輸出這些查找到的數據

用Python查找json格式中指定的數據輸出這些查找到的數據的操作步驟如下:

1,打開一個編輯器,例如sublime text 3,然後創建一個新的PY文檔。

⑶ 如何用python

把之前教程的地址移過來
合並帖子的內容:【整理】【多圖詳解】如何在Windows下開發Python:在cmd下運行Python腳本+如何使用Python Shell(command line模式和GUI模式)+如何使用Python IDE
為出版而整理:每章都加了摘要,每章都完善了架構。
整理章節的架構;整理第一章的內容
添加Python學習資料目錄
前言
1. 本文目的
2. 看此文之前你所要掌握的知識
1. Python簡介
1.1. 什麼是Python
1.1.1. Python這個單詞的本意是蟒蛇
1.1.2. Python是一種計算機語言
1.1.3. 作為計算機語言的Python的各種叫法的含義
1.1.3.1. Python是一種腳本語言
1.1.3.2. Python是一種交互性的語言
1.1.3.3. Python是一門解釋性的語言
1.1.3.4. Python是一種面向對象的語言
1.1.3.5. Python是一種高級語言
1.2. Python能幹什麼
1.3. Python的特點
1.3.1. 作為解釋性語言的Python的優缺點
1.3.1.1. Python的優點
1.3.1.2. Python的缺點
1.3.2. Python語言自身的特點
1.4. Python相關的必備知識
1.4.1. Python文件的後綴是py
1.4.2. Python的縮寫和簡稱
1.4.3. Python的官網
1.4.4. Python的logo圖案
2. 選擇並下載合適的版本的Python
2.1. 為何要注意選擇合適版本的Python
2.2. 如何選擇正確版本的Python
2.2.1. 明確當前所處平台版本的信息
2.2.2. 選擇可用和速度快的下載源
2.2.3. 選擇合適的版本的Python
3. 如何安裝Python
3.1. 如何在Windows系統中安裝Python
3.1.1. 在Win7中安裝Python
3.2. 如何在linux系統中安裝Python
3.2.1. 在Ubuntu中安裝Python
3.3. 如何在Mac中安裝Python
4. 選擇合適的Python開發環境
4.1. 如何在Windows環境下開發Python
4.1.1. Python的最原始的開發方式是什麼樣的
4.1.1.1. 找個文本編輯器,新建個.py文件,寫上Python代碼
4.1.1.2. 打開Windows的cmd,並且切換到對應的python腳本所在目錄
4.1.1.2.1. 方法1:手動打開cmd,並cd到對應路徑
4.1.1.2.2. 方法2:通過Notepad++的Open current dir cmd
4.1.1.3. 在cmd中去運行你的Python腳本(.py文件)
4.1.2. 利用Python的shell進行互動式開發又是什麼樣的
4.1.2.1. 命令行版本的Python Shell – Python (command line)
4.1.2.2. 帶圖形界面的Python Shell – IDLE (Python GUI)
4.1.2.3. 關於(command line或GUI版本的)Python Shell的用途
4.1.3. 利用第三方Python的IDE進行Python開發又是怎麼回事
4.1.3.1. 為何會有Python的IDE
4.1.3.2. 目前常見的一些Python的IDE
4.1.3.3. Python的IDE和Python代碼編輯器,Windows的cmd,等的關系
4.1.3.4. 使用IDE時所遇到的一些常見的問題
4.1.3.4.1. IDE只能夠打開了文件,並不代表就已經在shell中運行了該文件
4.1.3.4.2. 需要注意,確保有可以運行的Python起始部分的代碼
4.1.4. 總結:到底使用哪種環境去開發Python
4.1.4.1. 對初學者的建議:如何選用Python的開發環境
4.1.5. 如何在Windows環境下使用Python腳本
4.1.5.1. 如何在Windows下的cmd中運行BlogsToWordpress.py
4.2. 如何在Linux環境下開發Python
4.3. 如何在Mac環境下開發Python
5. Python的基本語法和基礎知識
5.1. 一張圖片入門Python
5.2. Python中的2.x版本和3.x版本
5.3. Python文件編碼聲明
5.4. Python中的縮進
5.5. Python中基本變數的聲明和定義
5.5.1. Python中變數的作用域
5.5.2. Python中變數與C語言中的變數對比
5.6. Python中的分支結構
5.7. Python中的函數
5.8. Python中的面向對象編程
6. 繼續學習Python的思路和方法
6.1. 如何繼續深入學習Python
6.2. 如何利用Python相關資源
6.2.1. 如何利用Python自帶的手冊
6.2.2. 如何利用一些在線的Python資源
7. Python常見問題及解答
常見問題
7.1. 在window的cmd中運行python結果卻調用了文本編輯器去打開了,而不是去調用Python解析器去運行python文件
8. Python相關資源
參考書目
插圖清單
4.1. 在Windows下的cmd下面運行Python腳本的樣子
4.2. 開始菜單中找到的Python (Command Line)
4.3. Python (Command Line)的界面
4.4. 動畫演示如何在Windows的cmd中運行Python腳本BlogsToWordpress.py
4.5. 在Mac下的Terminal中運行Python腳本:BlogsToWordpress
5.1. Quick Python Script Explanation
5.2. 一張圖入門Python中文版
7.1. 安裝Python時選擇Register Extensions
範例清單
4.1. 舉例:用Python的IDLE去做URL解碼
公式清單
4.1. 什麼是IDE
4.2. 什麼是Python的IDE

⑷ 如何用Python實現查找"/"目錄下的文件夾或文件,感謝

給你各相對來說容易理解的哈
import os
name=raw_input('filename:') #在這里輸入你的查找值
a=os.listdir('/') #把所有/目錄下的文件,目錄存放入a
if name in a: #如果查找值在/目錄下,進行進一步判斷
if os.path.isdir(name): #判斷是否為目錄

print 'dir'

elif os.path.isfile(name) and os.pathislink(name): #符號連接即是文件又是link所以雙重判斷

print 'link'

elif os.path.isfile(name): #判斷是否文件

print 'file'

else: #linux上文件類型多,不符合上面三種列印0ther

print 'other'
else: #不存在列印『not exist』
print 'not exist'

⑸ python教程免費的學習資料可以上哪找

python教程免費的學習資料可以上【達內教育】官網找。該機構擁有名企總監級講師團隊多年Python實戰經驗,課程由淺入深,循序漸進,學習無壓力。

【python教程】具體內容如下:
1、Python軟體開發基礎:掌握計算機的構成和工作原理、使用Linux常用工具和建立Python開發環境,並使用print輸出等。
2、Python全棧式WEB:獨立完成後端軟體開發,深入理解Python開發後端的精髓、獨立完成前端軟體的開發,並和後端結合,熟練掌握使用Python進行全站WEB開發的技巧。
3、Python多領域開發:使用Python熟練編寫爬蟲軟體、熟練使用Python庫進行數據分析和掌握軟體工程、項目管理、項目文檔、軟體測試調優的基本方法等。感興趣的話點擊此處,免費學習一下

想了解更多有關python的相關信息,推薦咨詢【達內教育】。【達內教育】重磅推出「因材施教、分級培優」創新教學模式,同一課程方向,面向不同受眾群體,提供就業、培優、才高三個級別教學課程,達內「因材施教、分級培優「差異化教學模式,讓每一位來達內學習的學員都能找到適合自己的課程。達內IT培訓機構,試聽名額限時搶購。

⑹ 利用名單匹配資料,資料名稱無規則但肯定包含人名,如何利用python迅速找到對應的文件

可以根據你的名單,查找包含這個名字的文件,列印對應的路徑即可。

⑺ 請問如何用python實現查找指定文件

若不包含子目錄的遍歷:

importglob

forfilenameinglob.glob("f:/py/*.exe"):
printfilename

否則可以:

importos
importfnmatch

defiterfindfiles(path,fnexp):
forroot,dirs,filesinos.walk(path):
forfilenameinfnmatch.filter(files,fnexp):
yieldos.path.join(root,filename)

forfilenameiniterfindfiles(r"f:/py","*.exe"):
printfilename

⑻ Python 解決你的實際問題可以在哪些地方找資料

Python 標准庫:
應該瀏覽一下這份文檔,它為標准庫中的類型、函數和模塊提供了完整(盡管很簡略)的參考資料。標準的 Python 發布版包括了 大量 的附加模塊。其中有針對讀取 Unix 郵箱、接收 HTTP 文檔、生成隨機數、解析命令行選項、寫 CGI 程序、壓縮數據以及很多其它任務的模塊。略讀一下庫參考會給你很多解決問題的思路。
安裝 Python 模塊 展示了如何安裝其他 Python 用戶編寫的附加模塊。
Python 語言參考: 詳細說明了 Python 語法和語義。
它讀起來很累,不過對於語言本身,有份完整的手冊很有用。
其它 Python 資源:
http://www.python.org: Python 官方網站。它包含代碼、文檔和 Web 上與 Python 有關的頁面鏈接該網站鏡像於全世界的幾處其它問題,類似歐洲、日本和澳大利亞。
鏡像可能會比主站快,這取決於你的地理位置。
http://docs.python.org: 快速訪問 Python 的文檔。
http://pypi.python.org: Python 包索引,以前昵稱為乳酪店,索引了可供下載的,用戶創建的 Python 模塊。如果你發布了代碼,可以注冊到這里,這樣別人可以找到它。
http://code.activestate.com/recipes/langs/python/: Python 食譜是大量的示例代碼、大型的集合,和有用的腳本。
值得關注的是這次資源已經結集成書,名為《Python 食譜》(O』Reilly & Associates, ISBN 0-596-00797-3。)
http://scipy.org: The Scientific Python 項目包括數組快速計算和處理模塊,和大量線性代數、傅里葉變換、非線性solvers、隨機數分布,統計分析以及類似的包。
與 Python 有關的問題,以及問題報告,可以發到新聞組 comp.lang.python ,或者發送到郵件組 [email protected] 。新聞組和郵件組是開放的,所以發送的消息可以自動的跟到另一個之後。每天有超過 120 個投遞(高峰時有數百),提問(以及回答)問題,為新功能提建議,發布新模塊。在發信之前,請查閱 常見問題 (亦稱 FAQ),或者在 Python 源碼發布包的 Misc/ 目錄中查閱。郵件組也可以在 http://mail.python.org/pipermail/ 訪問。FAQ回答了很多被反復提到的問題,很可能已經解答了你的問題。
Next Previous

⑼ Python里怎麼用find找出HTML里需要的資料(不用re模塊和beautifulSoup)

你可以看一個python自帶的源代碼。叫sgmlparser.py, 那個解析方法又叫平面解析方法。參考它的演算法用find就可以解析出所要的資料。

其實用find速度更快。按理比re要快不少。 只需要找到頭與尾就可以。 只是因為find相對比較固定,沒有re那麼靈活,所以適應性差些。 經常要變更。比如你找一個class="id_xxx"這樣的內容用find就很費勁。

你先做一個類。它能封裝你查找到起點,終點。查找區間。然後內部使用find做查找。實現類似findall, search, subplace, like等功能。其實也不難。

只是如果做得太復雜了。效率可能受影響,那麼你可以使用cython做成C語言的格式,效率就不受影響了。

⑽ 如何使用python查找網站漏洞

如果你的Web應用中存在Python代碼注入漏洞的話,攻擊者就可以利用你的Web應用來向你後台伺服器的Python解析器發送惡意Python代碼了。這也就意味著,如果你可以在目標伺服器中執行Python代碼的話,你就可以通過調用伺服器的操作系統的指令來實施攻擊了。通過運行操作系統命令,你不僅可以對那些可以訪問到的文件進行讀寫操作,甚至還可以啟動一個遠程的互動式Shell(例如nc、Metasploit和Empire)。
為了復現這個漏洞,我在最近的一次外部滲透測試過程中曾嘗試去利用過這個漏洞。當時我想在網上查找一些關於這個漏洞具體應用方法的信息,但是並沒有找到太多有價值的內容。在同事Charlie Worrell(@decidedlygray)的幫助下,我們成功地通過Burp POC實現了一個非互動式的shell,這也是我們這篇文章所要描述的內容。
因為除了Python之外,還有很多其他的語言(例如Perl和Ruby)也有可能出現代碼注入問題,因此Python代碼注入屬於伺服器端代碼注入的一種。實際上,如果各位同學和我一樣是一名CWE的關注者,那麼下面這兩個CWE也許可以給你提供一些有價值的參考內容:
1. CWE-94:代碼生成控制不當(『代碼注入』)2. CWE-95:動態代碼評估指令處理不當(『Eval注入』)漏洞利用
假設你現在使用Burp或者其他工具發現了一個Python注入漏洞,而此時的漏洞利用Payload又如下所示:
eval(compile('for x in range(1):\n import time\n time.sleep(20)','a','single'))那麼你就可以使用下面這個Payload來在目標主機中實現操作系統指令注入了:
eval(compile("""for x in range(1):\\n import os\\n os.popen(r'COMMAND').read()""",'','single'))實際上,你甚至都不需要使用for循環,直接使用全局函數「__import__」就可以了。具體代碼如下所示:
eval(compile("""__import__('os').popen(r'COMMAND').read()""",'','single'))其實我們的Payload代碼還可以更加簡潔,既然我們已經將import和popen寫在了一個表達式裡面了,那麼在大多數情況下,你甚至都不需要使用compile了。具體代碼如下所示:
__import__('os').popen('COMMAND').read()
為了將這個Payload發送給目標Web應用,你需要對其中的某些字元進行URL編碼。為了節省大家的時間,我們在這里已經將上面所列出的Payload代碼編碼完成了,具體如下所示:
param=eval%28compile%28%27for%20x%20in%20range%281%29%3A%0A%20import%20time%0A%20time.sleep%2820%29%27%2C%27a%27%2C%27single%27%29%29param=eval%28compile%28%22%22%22for%20x%20in%20range%281%29%3A%5Cn%20import%20os%5Cn%20os.popen%28r%27COMMAND%27%29.read%28%29%22%22%22%2C%27%27%2C%27single%27%29%29param=eval%28compile%28%22%22%22__import__%28%27os%27%29.popen%28r%27COMMAND%27%29.read%28%29%22%22%22%2C%27%27%2C%27single%27%29%29param=__import__%28%27os%27%29.popen%28%27COMMAND%27%29.read%28%29接下來,我們將會給大家介紹關於這個漏洞的細節內容,並跟大家分享一個包含這個漏洞的Web應用。在文章的結尾,我將會給大家演示一款工具,這款工具是我和我的同事Charlie共同編寫的,它可以明顯降低你在利用這個漏洞時所花的時間。簡而言之,這款工具就像sqlmap一樣,可以讓你快速找到SQL注入漏洞,不過這款工具仍在起步階段,感興趣的同學可以在項目的GitHub主頁[傳送門]中與我交流一下。
搭建一個包含漏洞的伺服器
為了更好地給各位同學進行演示,我專門創建了一個包含漏洞的Web應用。如果你想要自己動手嘗試利用這個漏洞的話,你可以點擊這里獲取這份Web應用。接下來,我們要配置的就是Web應用的運行環境,即通過pip或者easy_install來安裝web.py。它可以作為一台獨立的伺服器運行,或者你也可以將它載入至包含mod_wsgi模塊的Apache伺服器中。相關操作指令如下所示:
git clone https://github.com/sethsec/PyCodeInjection.gitcd VulnApp
./install_requirements.sh
python PyCodeInjectionApp.py
漏洞分析
當你在網上搜索關於python的eval()函數時,幾乎沒有文章會提醒你這個函數是非常不安全的,而eval()函數就是導致這個Python代碼注入漏洞的罪魁禍首。如果你遇到了下面這兩種情況,說明你的Web應用中存在這個漏洞:
1. Web應用接受用戶輸入(例如GET/POST參數,cookie值);2. Web應用使用了一種不安全的方法來將用戶的輸入數據傳遞給eval()函數(沒有經過安全審查,或者缺少安全保護機制);下圖所示的是一份包含漏洞的示例代碼:
\
大家可以看到,eval()函數是上述代碼中唯一一個存在問題的地方。除此之外,如果開發人員直接對用戶的輸入數據(序列化數據)進行拆封的話,那麼Web應用中也將會出現這個漏洞。
不過需要注意的是,除了eval()函數之外,Python的exec()函數也有可能讓你的Web應用中出現這個漏洞。而且據我所示,現在很多開發人員都會在Web應用中不規范地使用exec()函數,所以這個問題肯定會存在。
自動掃描漏洞
為了告訴大家如何利用漏洞來實施攻擊,我通常會使用掃描器來發現一些我此前沒有見過的東西。找到之後,我再想辦法將毫無新意的PoC開發成一個有意義的exploit。不過我想提醒大家的是,不要過度依賴掃描工具,因為還很多東西是掃描工具也找不到的。
這個漏洞也不例外,如果你在某個Web應用中發現了這個漏洞,那麼你肯定使用了某款自動化的掃描工具,比如說Burp Suite Pro。目前為止,如果不使用類似Burp Suite Pro這樣的專業掃描工具,你幾乎是無法發現這個漏洞的。
當你搭建好測試環境之後,啟動並運行包含漏洞的示例應用。接下來,使用Burp Suite Pro來對其進行掃描。掃描結果如下圖所示:
\
下圖顯示的是Burp在掃描這個漏洞時所使用的Payload:
\
我們可以看到,Burp之所以要將這個Web應用標記為「Vulnerable」(包含漏洞的),是因為當它將這個Payload發送給目標Web應用之後,伺服器的Python解析器休眠了20秒,響應信息在20秒之後才成功返回。但我要提醒大家的是,這種基於時間的漏洞檢查機制通常會存在一定的誤報。
將PoC升級成漏洞利用代碼
使用time.sleep()來驗證漏洞的存在的確是一種很好的方法。接下來,為了執行操作系統指令並接收相應的輸出數據,我們可以使用os.popen()、subprocess.Popen()、或者subprocess.check_output()這幾個函數。當然了,應該還有很多其他的函數同樣可以實現我們的目標。
因為eval()函數只能對表達式進行處理,因此Burp Suite Pro的Payload在這里使用了compile()函數,這是一種非常聰明的做法。當然了,我們也可以使用其他的方法來實現,例如使用全局函數「__import__」。關於這部分內容請查閱參考資料:[參考資料1][參考資料2]
下面這個Payload應該可以適用於絕大多數的場景:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Example with one expression
__import__('os').popen('COMMAND').read()
# Example with multiple expressions, separated by commasstr("-"*50),__import__('os').popen('COMMAND').read()如果你需要執行一個或多個語句,那麼你就需要使用eval()或者compile()函數了。實現代碼如下所示:
# Examples with one expression
eval(compile("""__import__('os').popen(r'COMMAND').read()""",'','single'))eval(compile("""__import__('subprocess').check_output(r'COMMAND',shell=True)""",'','single'))#Examples with multiple statements, separated by semicolonseval(compile("""__import__('os').popen(r'COMMAND').read();import time;time.sleep(2)""",'','single'))eval(compile("""__import__('subprocess').check_output(r'COMMAND',shell=True);import time;time.sleep(2)""",'','single'))在我的測試過程中,有時全局函數「__import__」會不起作用。在這種情況下,我們就要使用for循環了。相關代碼如下所示:
eval(compile("""for x in range(1):\n import os\n os.popen(r'COMMAND').read()""",'','single'))eval(compile("""for x in range(1):\n import subprocess\n subprocess.Popen(r'COMMAND',shell=True, stdout=subprocess.PIPE).stdout.read()""",'','single'))eval(compile("""for x in range(1):\n import subprocess\n subprocess.check_output(r'COMMAND',shell=True)""",'','single'))如果包含漏洞的參數是一個GET參數,那麼你就可以直接在瀏覽器中利用這個漏洞了:
\
請注意:雖然瀏覽器會幫你完成絕大部分的URL編碼工作,但是你仍然需要對分號(%3b)和空格(%20)進行手動編碼。除此之外,你也可以直接使用我們所開發的工具。
如果是POST參數的話,我建議各位直接使用類似Burp Repeater這樣的工具。如下圖所示,我在subprocess.check_output()函數中一次性調用了多個系統命令,即pwd、ls、-al、whoami和ping。
\
\
漏洞利用工具-PyCodeInjectionShell
你可以直接訪問PyCodeInjectionShell的GitHub主頁獲取工具源碼,我們也提供了相應的工具使用指南。在你使用這款工具的過程中會感覺到,它跟sqlmap一樣使用起來非常的簡單。除此之外,它的使用方法跟sqlmap基本相同。

閱讀全文

與用python查找資料相關的資料

熱點內容
度人經pdf 瀏覽:898
怎麼配置android遠程伺服器地址 瀏覽:956
java程序員看哪些書 瀏覽:939
什麼app可以免費和外國人聊天 瀏覽:793
pdf手寫筆 瀏覽:178
別永遠傷在童年pdf 瀏覽:986
愛上北斗星男友在哪個app上看 瀏覽:419
主力散戶派發源碼 瀏覽:669
linux如何修復伺服器時間 瀏覽:59
榮縣優途網約車app叫什麼 瀏覽:477
百姓網app截圖是什麼意思 瀏覽:226
php如何嵌入html 瀏覽:814
解壓專家怎麼傳輸 瀏覽:745
如何共享伺服器的網路連接 瀏覽:134
程序員簡易表白代碼 瀏覽:168
什麼是無線加密狗 瀏覽:64
國家反詐中心app為什麼會彈出 瀏覽:69
cad壓縮圖列印 瀏覽:104
網頁打開速度與伺服器有什麼關系 瀏覽:865
android開發技術文檔 瀏覽:65