Python,如何创建目录

要创建目录,请使用os标准库模块提供的os.mkdir()方法: import os dirname = '/Users/flavio/test' os.mkdir(dirname) 创建目录可能会引发OSError异常,例如,如果磁盘已满或目录已经存在,因此我们使用try块来捕获并优雅地处理问题,通过打印错误消息: import os dirname = '/Users/flavio/test' try: os.mkdir(dirname) except OSError: print('无法创建目录') else: print('目录已创建')

Python,如何從字符串創建列表

下面是如何在Python中從字符串創建一個列表的方法。 首先,您需要決定如何切割字符串。例如,每次遇到一個空格。 將' '單詞分隔符傳遞給每個Python字符串提供的split()方法。 例子: phrase = '我要去買牛奶' words = phrase.split(' ') print(words)

Python,如何寫入文件

要將內容寫入文件,首先需要使用open()全局函數打開它,它接受兩個參數:文件路徑和模式。 您可以使用a作為模式,告訴Python以附加模式打開文件,並將內容添加到文件中。 filename = '/Users/flavio/test.txt' file = open(filename, 'a') #或者 file = open(filename, mode='a') 或者,您可以使用w標誌來清除現有內容: filename = '/Users/flavio/test.txt' file = open(filename, 'w') #或者 file = open(filename, mode='w') 打開文件後,您可以使用write()和writelines()方法。 write()接受一個字符串。 writelines()接受一個字符串列表: filename = '/Users/flavio/test.txt' file = open(filename, 'w') file.write('This is a line\n') file.writelines(['One\n', 'Two']) file.close() \n是一個特殊字符,用於換行 在寫入文件後,記得使用文件的close()方法關閉文件。

Python,如何檢查檔案或目錄是否存在

Python的標準函式庫模組os提供了os.path.exists()方法,該方法可以檢查檔案是否存在,如果存在則返回True,否則返回False。 以下是使用方法: import os filename = '/Users/flavio/test.txt' exists = os.path.exists(filename) print(exists) # True

Python,接受命令行參數

Python 提供了幾種處理從命令行調用程序時傳遞的參數的方法。 到目前為止,您已經從 REPL 運行程序,或者使用以下方式: python <filename>.py 當這樣做時,您可以傳遞額外的參數和選項,例如: python <filename>.py <argument1> python <filename>.py <argument1> <argument2> 處理這些參數的一種基本方式是使用標準庫中的 sys 模塊。 您可以獲取在 sys.argv 列表中傳遞的參數: import sys print(len(sys.argv)) print(sys.argv) sys.argv 列表的第一個元素包含運行的文件名,例如 ['main.py']。 這是一種簡單的方式,但是您需要做很多工作。您需要驗證參數,確保它們的類型正確,需要在用戶未正確使用程序時向其提供反饋。 Python 還提供了另一個幫助您的標準庫包:argparse。 首先,您導入 argparse,並呼叫 argparse.ArgumentParser(),並傳遞程序的描述: import argparse parser = argparse.ArgumentParser( description='This program prints the name of my dogs' ) 然後,您繼續添加要接受的參數。例如,在這個程序中,我們使用 -c 選項來傳遞一種顏色,像這樣:python program.py -c red import argparse parser = argparse.ArgumentParser( description='This program prints a color HEX value' ) parser.add_argument('-c', '--color', metavar='color', required=True, help='the color to search for') args = parser....

Python,接受輸入

在 Python 命令列應用程式中,您可以使用 print() 函數向使用者顯示資訊: name = "Roger" print(name) 我們也可以從使用者接受輸入,使用 input() 函數: print('你的年齡是多少?') age = input() print('你的年齡是 ' + age) 這種方式在執行時接受輸入,意味著程式會停止執行,並等到使用者輸入並按下 “enter” 鍵。 您還可以進一步處理輸入並在程式啟動時接受輸入。我們稍後會看到如何處理。 這種方法適用於命令列應用程式。其他類型的應用程式會需要不同的方式來接受輸入。

Python,創建一個網頁(HTTP)伺服器

Python非常容易通過標準庫的http模組來創建一個HTTP伺服器。 特別是,我們將使用http.server對象。 首先,我要提及一種在任意文件夾中運行HTTP伺服器的快速方法,而不需要編寫任何代碼: python -m http.server --cgi 8000 這將在8000端口上運行一個HTTP伺服器,提供當前文件夾中的文件。當然,這不是一個像Nginx或Apache那樣功能完整的HTTP伺服器,但對於原型或自己的測試項目往往已經足夠。 現在讓我們在我們的代碼中使用該模塊,以便以編程方式向連接到8000端口的任何人提供“Hello, World!”字符串: from http.server import BaseHTTPRequestHandler, HTTPServer class handler(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.send_header('Content-type','text/html') self.end_headers() message = "Hello, World!" self.wfile.write(bytes(message, "utf8")) with HTTPServer(('', 8000), handler) as server: server.serve_forever() 在本地運行此程序後,您可以使用網絡瀏覽器連接到端口http://localhost:8000 。 此代碼將向訪問網站http://localhost:8000的任何人提供相同的“Hello, World!”字符串,無論其請求的URL是什麼,並返回200響應和“Content-type:text/html”標頭。 我們將數據寫入wfile,其中包含將響應返回給客戶端的輸出流。 這僅對GET請求起作用,因為我們實現了處理器的do_GET方法。 您還可以實現do_HEAD()、do_POST()和任何其他HTTP方法: from http.server import BaseHTTPRequestHandler, HTTPServer class handler(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.send_header('Content-type','text/html') self.end_headers() message = "Hello, World! Here is a GET response" self.wfile.write(bytes(message, "utf8")) def do_POST(self): self.send_response(200) self.send_header('Content-type','text/html') self....

Python,創建網路請求

Python提供了urllib標準庫包來創建網路請求。 使用以下代碼創建請求: from urllib import request url = 'https://dog.ceo/api/breeds/list/all' response = request.urlopen(url) content = response.read() print(content) 你也可以使用with語句來簡化: from urllib import request url = 'https://dog.ceo/api/breeds/list/all' with request.urlopen(url) as response: content = response.read() print(content) 響應是一個字節序列,你會注意到響應被包裹在b''字符串中: b'{"message":{"affenpinscher":[],"african":[],"airedale":[],"akita":[],"appenzeller":[],"australian":["shepherd"],"basenji":[],"beagle":[],"bluetick":[],"borzoi":[],"bouvier":[],"boxer":[],"brabancon":[],"briard":[],"buhund":["norwegian"],"bulldog":["boston","english","french"]},"status":"success"}' 使用content.decode('utf-8')將其解碼為UTF-8編碼的字符串。 這裡是從我的網站flavicopes.com獲取HTML內容的例子: from urllib import request url = 'https://flaviocopes.com' with request.urlopen(url) as response: content = response.read().decode('utf-8') print(content) 你可以使用json標準庫模塊將響應解析為JSON: from urllib import request import json url = 'https://dog.ceo/api/breeds/list/all' with request.urlopen(url) as response: content = response.read() data = json....

Python三元運算子

在Python中,三元運算子可以讓你快速定義一個條件。 假設你有一個函數,它將一個 age 變數與值 18 進行比較,根據結果返回True或False。 與其這樣寫: def is_adult(age): if age > 18: return True else: return False 你可以使用三元運算子這樣實現: def is_adult(age): return True if age > 18 else False 首先,你定義了條件為True時的結果,然後評估條件,最後定義了條件為False時的結果: <result_if_true> if <condition> else <result_if_false>

Python中的多執行緒介紹

在Python中,應用程序通常只運行在單個執行緒上,除非你明確啟用了多執行緒。 為什麼要使用多執行緒呢?在Python中,代碼是按照順序運行的,一個指令接著一個指令執行。 如果你定義了一個睡眠3秒然後打印信息的函數,像這樣: import time def greet(): time.sleep(3) print('hello') greet() print('world') world字符串將在3秒後打印出來,因為我們在greet()函數中調用了time.sleep(3)。 這只是一個簡單的例子,但想象一下處理圖像、從網絡獲取資源或將大文件寫入磁盤等耗時的任務,這些都需要較長的時間。 通過使用多執行緒,我們可以將耗時的函數運行在單獨的執行緒中,同時繼續執行主程序。 threading標准庫模塊能夠幫助我們實現多執行緒。你可以從中導入Thread: from threading import Thread 然後,我們將要執行的函數作為target參數傳遞給Thread()函數,以獲得一個執行緒對象: t = Thread(target=greet) 接下來,我們調用它的start()方法來啟動這個執行緒: t.start() 試著運行下面的代碼: from threading import Thread import time def greet(): time.sleep(3) print('hello') t = Thread(target=greet) t.start() print('world') 你會發現world比hello早3秒打印出來。 除非你將執行緒設置為守護線程,否則程序將一直運行,直到該執行緒(或它開啟的所有其他執行緒)結束。 這就是多執行緒的基本介紹。雖然強大,但如果使用不當,很容易引入錯誤。