国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

在什么網(wǎng)站做推廣最好鞍山seo公司

在什么網(wǎng)站做推廣最好,鞍山seo公司,計(jì)算機(jī)學(xué)院網(wǎng)站建設(shè)系統(tǒng)可行性分析,網(wǎng)站收錄方法目錄 1. 生成隨機(jī)文本 2. 計(jì)算文本文件中的字?jǐn)?shù) 3. 替換文件文件中的字串 4. 多文件名的批量替換 5. 從網(wǎng)站提取數(shù)據(jù) 6. 批量下載圖片 7.批量刪除空文件夾 8.Excel表格讀寫 9.合并Excel表格工作簿 10.數(shù)據(jù)庫(kù)SQL查詢 11. 系統(tǒng)進(jìn)程查殺 12.圖像尺寸調(diào)整和裁剪 13.圖…

目錄

1. 生成隨機(jī)文本

2. 計(jì)算文本文件中的字?jǐn)?shù)

3. 替換文件文件中的字串

4. 多文件名的批量替換

5. 從網(wǎng)站提取數(shù)據(jù)

6. 批量下載圖片

7.批量刪除空文件夾

8.Excel表格讀寫

9.合并Excel表格工作簿

10.數(shù)據(jù)庫(kù)SQL查詢

11. 系統(tǒng)進(jìn)程查殺

12.圖像尺寸調(diào)整和裁剪

13.圖片添加水印

14. 創(chuàng)建圖像縮略圖

15.PDF中提取文本

16. 合并多個(gè)PDF文件


1. 生成隨機(jī)文本

import random
import string
def generate_random_text(length):letters = string.ascii_letters + string.digits + string.punctuationrandom_text = ''.join(random.choice(letters) for i in range(length))return random_text

函數(shù)generate_random_text接受一個(gè)參數(shù)length,用于指定生成的隨機(jī)文本的長(zhǎng)度。函數(shù)內(nèi)部,它首先定義了一個(gè)letters字符串,包含了所有的ASCII字母(大寫和小寫)、數(shù)字以及標(biāo)點(diǎn)符號(hào)。然后,它使用列表推導(dǎo)式和random.choice函數(shù)從letters中隨機(jī)選擇字符,并將這些字符連接成一個(gè)字符串。最后,函數(shù)返回這個(gè)隨機(jī)生成的字符串。以下是對(duì)代碼的詳細(xì)解釋:

  1. import random
    導(dǎo)入Python的random模塊,該模塊提供了生成隨機(jī)數(shù)的功能。

  2. import string
    導(dǎo)入Python的string模塊,該模塊包含了一些常用的字符串常量,如ASCII字母、數(shù)字、標(biāo)點(diǎn)符號(hào)等。

  3. def generate_random_text(length):
    定義了一個(gè)名為generate_random_text的函數(shù),該函數(shù)接受一個(gè)參數(shù)length,表示要生成的隨機(jī)文本的長(zhǎng)度。

  4. letters = string.ascii_letters + string.digits + string.punctuation
    創(chuàng)建了一個(gè)名為letters的字符串,該字符串包含了所有ASCII字母(大寫和小寫)、數(shù)字以及標(biāo)點(diǎn)符號(hào)。這是為了確保生成的隨機(jī)文本可以包含這些字符。

  5. random_text = ''.join(random.choice(letters) for i in range(length))
    使用列表推導(dǎo)式(list comprehension)和random.choice函數(shù)來(lái)生成隨機(jī)文本。

    • random.choice(letters):從letters字符串中隨機(jī)選擇一個(gè)字符。
    • for i in range(length):循環(huán)length次,確保生成的隨機(jī)文本長(zhǎng)度為length。
    • ''.join(...):將生成的隨機(jī)字符列表連接成一個(gè)字符串。
  6. return random_text
    返回生成的隨機(jī)文本字符串。

2. 計(jì)算文本文件中的字?jǐn)?shù)

def count_words(file_path):with open(file_path, 'r') as f:text = f.read()word_count = len(text.split())return word_count

函數(shù)count_words接受一個(gè)文件路徑file_path作為參數(shù),并返回該文件中單詞的數(shù)量。以下是函數(shù)的詳細(xì)解釋:

  1. def count_words(file_path):
    這是函數(shù)的定義行,其中count_words是函數(shù)名,file_path是唯一的參數(shù)。

  2. with open(file_path, 'r') as f:
    使用with語(yǔ)句和open函數(shù)來(lái)打開(kāi)指定路徑file_path的文件。文件以只讀模式('r')打開(kāi),并將其文件對(duì)象賦值給變量f。with語(yǔ)句確保文件在操作完成后會(huì)被正確關(guān)閉。

  3. text = f.read()
    讀取文件對(duì)象f中的所有內(nèi)容,并將其作為字符串賦值給變量text。

  4. word_count = len(text.split())
    text.split()方法用于將text字符串按照空格分割成一個(gè)單詞列表。split()方法默認(rèn)使用空格作為分隔符,因此它會(huì)分割字符串中所有的空格(包括單詞間的空格、換行符后的空格等)。len()函數(shù)則用于計(jì)算這個(gè)列表中元素的數(shù)量,即單詞的數(shù)量。

  5. return word_count
    函數(shù)返回計(jì)算得到的單詞數(shù)量。

請(qǐng)注意,這個(gè)函數(shù)簡(jiǎn)單地通過(guò)空格來(lái)分割單詞,因此可能無(wú)法正確處理某些復(fù)雜情況,比如標(biāo)點(diǎn)符號(hào)緊挨著單詞、縮寫詞等。對(duì)于更準(zhǔn)確的單詞計(jì)數(shù),可能需要使用更復(fù)雜的文本處理庫(kù),如NLTK(Natural Language Toolkit)或正則表達(dá)式。

此外,如果文件非常大,使用f.read()將整個(gè)文件內(nèi)容讀入內(nèi)存可能會(huì)導(dǎo)致內(nèi)存不足。在這種情況下,可以考慮逐行讀取文件并計(jì)算單詞數(shù)量,以節(jié)省內(nèi)存。

3. 替換文件文件中的字串

def find_replace(file_path, search_text, replace_text):with open(file_path, 'r') as f:text = f.read()modified_text = text.replace(search_text, replace_text)with open(file_path, 'w') as f:f.write(modified_text)

函數(shù)?find_replace?執(zhí)行了一個(gè)常見(jiàn)的文本文件操作:查找并替換文件中的文本。以下是該函數(shù)的詳細(xì)解釋:

  1. def find_replace(file_path, search_text, replace_text):
    定義了一個(gè)名為?find_replace?的函數(shù),它接受三個(gè)參數(shù):file_path(要操作的文件路徑),search_text(要在文件中查找的文本),和?replace_text(用于替換找到的文本的文本)。

  2. with open(file_path, 'r') as f:
    使用?with?語(yǔ)句和?open?函數(shù)以只讀模式('r')打開(kāi)指定路徑?file_path?的文件,并將文件對(duì)象賦值給變量?f。

  3. text = f.read()
    讀取文件對(duì)象?f?中的所有內(nèi)容,并將其作為字符串賦值給變量?text。

  4. modified_text = text.replace(search_text, replace_text)
    使用字符串的?replace?方法將?text?中的所有?search_text?實(shí)例替換為?replace_text。替換后的文本存儲(chǔ)在?modified_text?變量中。

  5. with open(file_path, 'w') as f:
    再次使用?with?語(yǔ)句和?open?函數(shù),但這次以寫入模式('w')打開(kāi)相同的文件路徑?file_path。如果文件已存在,這個(gè)操作會(huì)覆蓋文件的現(xiàn)有內(nèi)容。如果文件不存在,會(huì)創(chuàng)建一個(gè)新文件。

  6. f.write(modified_text)
    將修改后的文本?modified_text?寫入到文件對(duì)象中,從而更新文件內(nèi)容。

請(qǐng)注意,這個(gè)函數(shù)有幾個(gè)潛在的問(wèn)題和限制:

  • 如果文件非常大,將整個(gè)文件讀入內(nèi)存并進(jìn)行替換操作可能會(huì)消耗大量?jī)?nèi)存。
  • 使用?'w'?模式打開(kāi)文件會(huì)覆蓋文件的原始內(nèi)容,如果替換操作失敗,可能會(huì)導(dǎo)致數(shù)據(jù)丟失。
  • 該函數(shù)不會(huì)備份原始文件,所以在進(jìn)行替換操作之前,最好先備份文件。
  • 函數(shù)沒(méi)有處理可能出現(xiàn)的異常,如文件不存在、無(wú)法讀取或?qū)懭氲取?/li>

在實(shí)際應(yīng)用中,可能需要根據(jù)具體需求對(duì)這些潛在問(wèn)題進(jìn)行適當(dāng)?shù)奶幚怼?/p>

4. 多文件名的批量替換

import os
def rename_files(directory_path, old_name, new_name):for filename in os.listdir(directory_path):if old_name in filename:new_filename = filename.replace(old_name, new_name)os.rename(os.path.join(directory_path,filename),os.path.join(directory_path, new_filename))

函數(shù)?rename_files?的目的是重命名指定目錄中的文件。函數(shù)接受三個(gè)參數(shù):directory_path(目錄路徑),old_name(要在文件名中查找并替換的舊名稱),和?new_name(用于替換舊名稱的新名稱)。以下是對(duì)函數(shù)的詳細(xì)解釋:

  1. import os
    導(dǎo)入Python的?os?模塊,該模塊提供了與操作系統(tǒng)交互的功能,如文件操作、路徑名操作等。

  2. def rename_files(directory_path, old_name, new_name):
    定義了一個(gè)名為?rename_files?的函數(shù),該函數(shù)接受三個(gè)參數(shù):目錄路徑、舊文件名部分和新文件名部分。

  3. for filename in os.listdir(directory_path):
    使用?os.listdir()?函數(shù)列出指定目錄?directory_path?下的所有文件和子目錄名稱。然后,對(duì)于目錄中的每個(gè)文件(包括子目錄),函數(shù)會(huì)執(zhí)行以下操作。

  4. if old_name in filename:
    檢查當(dāng)前處理的文件名?filename?是否包含?old_name。如果包含,則執(zhí)行下面的代碼塊。

  5. new_filename = filename.replace(old_name, new_name)
    使用字符串的?replace()?方法將文件名?filename?中的?old_name?替換為?new_name。替換后的新文件名存儲(chǔ)在?new_filename?變量中。

  6. os.rename(os.path.join(directory_path, filename), os.path.join(directory_path, new_filename))
    使用?os.rename()?函數(shù)重命名文件。os.path.join(directory_path, filename)?用于構(gòu)建文件的完整路徑(包括目錄和文件名),同樣地,os.path.join(directory_path, new_filename)?用于構(gòu)建新文件名的完整路徑。這兩個(gè)路徑分別作為?os.rename()?函數(shù)的第一個(gè)和第二個(gè)參數(shù),表示要重命名的原始文件和新文件的路徑。

注意:

  • 如果目錄中包含子目錄,這個(gè)函數(shù)也會(huì)嘗試重命名子目錄,這可能會(huì)導(dǎo)致錯(cuò)誤,因?yàn)樽幽夸浲ǔ2荒鼙缓?jiǎn)單地重命名。
  • 如果目錄中存在多個(gè)文件包含相同的?old_name,這個(gè)函數(shù)會(huì)重命名所有這些文件,即使它們的擴(kuò)展名不同。
  • 這個(gè)函數(shù)不會(huì)處理文件重名的情況。如果新文件名與現(xiàn)有文件名沖突,os.rename()?會(huì)引發(fā)一個(gè)異常。
  • 函數(shù)沒(méi)有處理可能出現(xiàn)的異常,如權(quán)限問(wèn)題或文件不存在等。在實(shí)際應(yīng)用中,可能需要添加異常處理邏輯。

5. 從網(wǎng)站提取數(shù)據(jù)

import requests
from bs4 import BeautifulSoup
def scrape_data(url):response = requests.get(url)soup = BeautifulSoup(response.text, 'html.parser')

這段代碼是Python中用于網(wǎng)絡(luò)爬蟲的一個(gè)簡(jiǎn)單示例,具體用于從給定的URL地址抓取數(shù)據(jù)。這里使用了requests庫(kù)來(lái)發(fā)送HTTP請(qǐng)求,以及BeautifulSoup庫(kù)來(lái)解析HTML內(nèi)容。下面是對(duì)代碼的逐行解釋:

  1. import requests
    導(dǎo)入requests庫(kù),這是一個(gè)用于發(fā)送HTTP請(qǐng)求的庫(kù),可以輕松地發(fā)送GET、POST等請(qǐng)求。

  2. from bs4 import BeautifulSoup
    bs4(BeautifulSoup 4)庫(kù)中導(dǎo)入BeautifulSoup類。BeautifulSoup用于解析HTML和XML文檔,并提供了簡(jiǎn)單、靈活的方法來(lái)遍歷、搜索、修改分析樹(shù)等功能。

  3. def scrape_data(url):
    定義一個(gè)名為scrape_data的函數(shù),該函數(shù)接受一個(gè)參數(shù)url,這個(gè)參數(shù)代表要抓取的網(wǎng)頁(yè)的URL地址。

  4. response = requests.get(url)
    使用requests庫(kù)的get方法向給定的url發(fā)送一個(gè)HTTP GET請(qǐng)求。服務(wù)器的響應(yīng)會(huì)被存儲(chǔ)在response變量中。

  5. soup = BeautifulSoup(response.text, 'html.parser')
    response中的文本內(nèi)容(即網(wǎng)頁(yè)的HTML源代碼)傳遞給BeautifulSoup類,并指定使用html.parser作為解析器。這樣,BeautifulSoup就可以將HTML代碼解析成一個(gè)易于操作和查詢的數(shù)據(jù)結(jié)構(gòu)(通常是一個(gè)樹(shù)形結(jié)構(gòu))。解析后的數(shù)據(jù)存儲(chǔ)在soup變量中。

一旦你有了soup這個(gè)BeautifulSoup對(duì)象,你就可以使用它的方法來(lái)查找和提取網(wǎng)頁(yè)中的特定元素、屬性或文本內(nèi)容了。例如,你可以使用soup.find()、soup.find_all()等方法來(lái)搜索特定的HTML標(biāo)簽或?qū)傩?#xff0c;以及使用.text屬性來(lái)獲取元素的文本內(nèi)容等。

請(qǐng)注意,這段代碼只是網(wǎng)絡(luò)爬蟲的一部分,它只負(fù)責(zé)從網(wǎng)頁(yè)上抓取數(shù)據(jù)。如果你想要對(duì)抓取到的數(shù)據(jù)進(jìn)行進(jìn)一步的處理或分析,你還需要編寫更多的代碼來(lái)實(shí)現(xiàn)這些功能。此外,在使用網(wǎng)絡(luò)爬蟲時(shí),請(qǐng)務(wù)必遵守網(wǎng)站的robots.txt規(guī)則以及相關(guān)法律法規(guī),不要進(jìn)行惡意爬取或侵犯他人隱私。

6. 批量下載圖片

import requests
def download_images(url, save_directory):response = requests.get(url)if response.status_code == 200:images = response.json() # Assuming the API returns a JSON array of image URLsfor index, image_url in enumerate(images):image_response = requests.get(image_url)if image_response.status_code == 200:with open(f"{save_directory}/image_{index}.jpg", "wb") as f:f.write(image_response.content)

函數(shù)?download_images?用于從指定的 URL 下載多個(gè)圖像,并將它們保存到指定的目錄中。以下是對(duì)代碼的逐行解釋:

  1. import requests:
    導(dǎo)入 Python 的?requests?庫(kù),這是一個(gè)用于發(fā)送 HTTP 請(qǐng)求的庫(kù)。

  2. def download_images(url, save_directory)::
    定義一個(gè)名為?download_images?的函數(shù),該函數(shù)接受兩個(gè)參數(shù):url?和?save_directoryurl?是要請(qǐng)求的 API 的 URL,該 API 應(yīng)返回一個(gè)包含多個(gè)圖像 URL 的 JSON 數(shù)組;save_directory?是要保存下載圖像的目錄路徑。

  3. response = requests.get(url):
    使用?requests?庫(kù)的?get?方法發(fā)送一個(gè) HTTP GET 請(qǐng)求到?url?指定的地址,并將響應(yīng)對(duì)象存儲(chǔ)在?response?變量中。

  4. if response.status_code == 200::
    檢查 HTTP 響應(yīng)的狀態(tài)碼是否為 200,這表示請(qǐng)求成功。

  5. images = response.json():
    如果響應(yīng)成功,使用?response.json()?方法解析響應(yīng)的 JSON 內(nèi)容,并將解析后的結(jié)果(應(yīng)是一個(gè)圖像 URL 的數(shù)組)存儲(chǔ)在?images?變量中。

  6. for index, image_url in enumerate(images)::
    使用?enumerate?函數(shù)遍歷?images?數(shù)組,同時(shí)獲取每個(gè)圖像的索引(index)和 URL(image_url)。

  7. image_response = requests.get(image_url):
    對(duì)于每個(gè)圖像 URL,發(fā)送另一個(gè) HTTP GET 請(qǐng)求以獲取該圖像,并將響應(yīng)對(duì)象存儲(chǔ)在?image_response?變量中。

  8. if image_response.status_code == 200::
    再次檢查 HTTP 響應(yīng)的狀態(tài)碼是否為 200,以確保圖像請(qǐng)求成功。

  9. with open(f"{save_directory}/image_{index}.jpg", "wb") as f::
    使用?with?語(yǔ)句打開(kāi)一個(gè)文件,文件路徑由?save_directory?和?image_{index}.jpg?組成,文件模式為 "wb"(二進(jìn)制寫入模式)。這意味著我們將以二進(jìn)制格式將圖像寫入文件。

  10. f.write(image_response.content):
    將?image_response?中的內(nèi)容(即圖像的二進(jìn)制數(shù)據(jù))寫入到文件中。

這樣,該函數(shù)將遍歷從 API 返回的所有圖像 URL,下載每個(gè)圖像,并將它們以?image_0.jpg,?image_1.jpg,?image_2.jpg?等的名稱保存到指定的目錄中。

注意:

  • 該代碼假設(shè) API 返回的 JSON 數(shù)組中的每個(gè)元素都是一個(gè)有效的圖像 URL。
  • 代碼沒(méi)有處理可能出現(xiàn)的異常,如網(wǎng)絡(luò)錯(cuò)誤、無(wú)效的 JSON 響應(yīng)或無(wú)法寫入文件等。在實(shí)際應(yīng)用中,添加異常處理邏輯是很重要的。
  • 文件名使用索引編號(hào),如果下載多個(gè)圖像可能會(huì)有命名沖突的問(wèn)題。在實(shí)際應(yīng)用中,可能需要考慮使用更獨(dú)特的文件名,例如基于圖像 URL 的哈希值。

7.批量刪除空文件夾

import os
def remove_empty_folders(directory_path):for root, dirs, files in os.walk(directory_path, topdown=False):for folder in dirs:folder_path = os.path.join(root, folder)if not os.listdir(folder_path):os.rmdir(folder_path)

函數(shù)?remove_empty_folders?用于刪除給定目錄(及其子目錄)中的所有空文件夾。以下是對(duì)代碼的逐行解釋:

  1. import os:
    導(dǎo)入Python的os模塊,該模塊提供了與操作系統(tǒng)交互的函數(shù)和方法。

  2. def remove_empty_folders(directory_path)::
    定義一個(gè)名為remove_empty_folders的函數(shù),它接受一個(gè)參數(shù)directory_path,該參數(shù)代表要檢查并刪除空文件夾的目錄路徑。

  3. for root, dirs, files in os.walk(directory_path, topdown=False)::
    使用os.walk()函數(shù)遍歷directory_path目錄及其所有子目錄。os.walk()返回一個(gè)三元組(dirpath, dirnames, filenames),其中:

    • dirpath是一個(gè)字符串,表示目錄的路徑。
    • dirnames是一個(gè)列表,包含了dirpath目錄下的所有子目錄名(不包括...,即不包括當(dāng)前目錄和父目錄)。
    • filenames是一個(gè)列表,包含了dirpath目錄下的所有非目錄子項(xiàng)的名字。

    topdown參數(shù)設(shè)置為False意味著先遍歷子目錄,再遍歷父目錄。這有助于在刪除子目錄時(shí)不會(huì)影響到父目錄的遍歷。

  4. for folder in dirs::
    對(duì)于當(dāng)前遍歷到的目錄(root)下的每一個(gè)子目錄名(folder),執(zhí)行以下操作。

  5. folder_path = os.path.join(root, folder):
    使用os.path.join()函數(shù)將當(dāng)前目錄路徑root和子目錄名folder拼接成一個(gè)完整的路徑folder_path。

  6. if not os.listdir(folder_path)::
    使用os.listdir()函數(shù)檢查folder_path是否為空。如果folder_path沒(méi)有包含任何文件或子目錄,則os.listdir(folder_path)將返回一個(gè)空列表,條件判斷為True。

  7. os.rmdir(folder_path):
    如果上述條件判斷為真,即folder_path是一個(gè)空文件夾,則使用os.rmdir()函數(shù)刪除該空文件夾。

這個(gè)函數(shù)將遍歷給定目錄及其所有子目錄,并刪除所有空文件夾。注意,這個(gè)函數(shù)不會(huì)刪除包含隱藏文件或子目錄的空文件夾,也不會(huì)刪除非空文件夾。

8.Excel表格讀寫

import pandas as pd
def read_excel(file_path):df = pd.read_excel(file_path)return df
def write_to_excel(data, file_path):df = pd.DataFrame(data)df.to_excel(file_path, index=False)

函數(shù)?read_excel?和?write_to_excel,用于讀取和寫入 Excel 文件。兩個(gè)函數(shù)都使用了 Pandas 庫(kù),一個(gè) Python 的數(shù)據(jù)分析庫(kù)。?

1.?read_excel 函數(shù)

這個(gè)函數(shù)接受一個(gè)參數(shù)?file_path,表示要讀取的 Excel 文件的路徑。

2.?write_to_excel 函數(shù)

這個(gè)函數(shù)接受兩個(gè)參數(shù):data?和?file_pathdata?是一個(gè)字典、列表或其他可以被轉(zhuǎn)換為 DataFrame 的數(shù)據(jù)結(jié)構(gòu),file_path?是要寫入數(shù)據(jù)的 Excel 文件的路徑。

通過(guò)這兩個(gè)函數(shù),你可以方便地讀取和寫入 Excel 文件,而不需要關(guān)心底層的 Excel 文件操作細(xì)節(jié)。

9.合并Excel表格工作簿

import pandas as pd
def merge_sheets(file_path, output_file_path):xls = pd.ExcelFile(file_path)df = pd.DataFrame()for sheet_name in xls.sheet_names:sheet_df = pd.read_excel(xls, sheet_name)df = df.append(sheet_df)df.to_excel(output_file_path, index=False)

函數(shù)?merge_sheets?用于將多個(gè) Excel 工作表(sheets)合并到一個(gè)單一的 DataFrame 中,并將該 DataFrame 保存到一個(gè)新的 Excel 文件中。以下是代碼的逐行解釋:

  1. import pandas as pd
    導(dǎo)入 pandas 庫(kù),并為其指定一個(gè)別名?pd。Pandas 是一個(gè)用于數(shù)據(jù)分析和處理的 Python 庫(kù)。

  2. def merge_sheets(file_path, output_file_path):
    定義一個(gè)名為?merge_sheets?的函數(shù),該函數(shù)接受兩個(gè)參數(shù):file_path(要合并的 Excel 文件的路徑)和?output_file_path(輸出文件的路徑)。

  3. xls = pd.ExcelFile(file_path)
    使用 pandas 的?ExcelFile?類來(lái)讀取?file_path?指定的 Excel 文件,并將其存儲(chǔ)在?xls?變量中。

  4. df = pd.DataFrame()
    創(chuàng)建一個(gè)空的 DataFrame 對(duì)象?df。這個(gè) DataFrame 將用于存儲(chǔ)從 Excel 文件的不同工作表中讀取的數(shù)據(jù)。

  5. for sheet_name in xls.sheet_names:
    遍歷?xls?對(duì)象中存儲(chǔ)的所有工作表名稱。sheet_names?是一個(gè)包含所有工作表名稱的列表。

  6. sheet_df = pd.read_excel(xls, sheet_name)
    對(duì)于每一個(gè)工作表名稱?sheet_name,使用?read_excel?函數(shù)從?xls?對(duì)象中讀取該工作表的數(shù)據(jù),并將其存儲(chǔ)在?sheet_df(一個(gè) DataFrame 對(duì)象)中。

  7. df = df.append(sheet_df)
    將?sheet_df?中的數(shù)據(jù)追加到?df?中。這樣,df?最終將包含所有工作表的數(shù)據(jù)。

  8. df.to_excel(output_file_path, index=False)
    將合并后的 DataFrame?df?保存到指定的?output_file_path?路徑。index=False?表示在保存時(shí)不包含 DataFrame 的索引。

需要注意的是,雖然這段代碼能夠合并多個(gè)工作表,但它有一個(gè)效率問(wèn)題。在循環(huán)中,每次迭代都會(huì)將?sheet_df?追加到?df?并立即保存到?output_file_path。這意味著每次迭代都會(huì)覆蓋之前的輸出文件。實(shí)際上,你可能只想在循環(huán)結(jié)束后保存一次合并后的 DataFrame。正確的做法應(yīng)該是將?df.to_excel(output_file_path, index=False)?語(yǔ)句移出循環(huán),放在循環(huán)結(jié)束之后。這樣,所有工作表的數(shù)據(jù)都會(huì)被合并到一個(gè) DataFrame 中,然后一次性保存到輸出文件。

10.數(shù)據(jù)庫(kù)SQL查詢

import sqlite3
def connect_to_database(database_path):connection = sqlite3.connect(database_path)return connection
def execute_query(connection, query):cursor = connection.cursor()cursor.execute(query)result = cursor.fetchall()return result

這段代碼的兩個(gè)函數(shù)分別用于連接數(shù)據(jù)庫(kù)及執(zhí)行SQL查詢。以下是代碼的逐行解釋:

  1. 導(dǎo)入sqlite3模塊:這行代碼導(dǎo)入了Python的sqlite3模塊,該模塊提供了一個(gè)輕量級(jí)的磁盤上數(shù)據(jù)庫(kù),不需要單獨(dú)的服務(wù)器進(jìn)程或系統(tǒng)配置。

  2. connect_to_database函數(shù):接受一個(gè)參數(shù)database_path,它代表要連接的SQLite數(shù)據(jù)庫(kù)文件的路徑。

  3. execute_query函數(shù):這個(gè)函數(shù)接受兩個(gè)參數(shù):connection:一個(gè)到SQLite數(shù)據(jù)庫(kù)的連接對(duì)象,通常是通過(guò)connect_to_database 函數(shù)獲得的。?query:一個(gè)SQL查詢字符串,你希望執(zhí)行這個(gè)查詢來(lái)從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)。?

使用示例:

# 連接到數(shù)據(jù)庫(kù)  
conn = connect_to_database('example.db')  # 創(chuàng)建一個(gè)新的表  
create_table_query = '''  
CREATE TABLE IF NOT EXISTS users (  id INTEGER PRIMARY KEY,  name TEXT NOT NULL,  age INTEGER  
)  
'''  
execute_query(conn, create_table_query)  # 插入一些數(shù)據(jù)  
insert_data_query = '''  
INSERT INTO users (name, age) VALUES (?, ?)  
'''  
execute_query(conn, insert_data_query, ('Alice', 30))  
execute_query(conn, insert_data_query, ('Bob', 25))  # 查詢所有數(shù)據(jù)  
select_all_query = 'SELECT * FROM users'  
users = execute_query(conn, select_all_query)  
for user in users:  print(user)  # 關(guān)閉連接  
conn.close()

11. 系統(tǒng)進(jìn)程查殺

import psutil
def get_running_processes():return [p.info for p in psutil.process_iter(['pid', 'name', 'username'])]
def kill_process_by_name(process_name):for p in psutil.process_iter(['pid', 'name', 'username']):if p.info['name'] == process_name:p.kill()

這段代碼使用了?psutil?庫(kù)來(lái)查詢和管理操作系統(tǒng)中的進(jìn)程。psutil?是一個(gè)跨平臺(tái)庫(kù),能夠獲取系統(tǒng)運(yùn)行狀態(tài)信息,包括 CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)、進(jìn)程等。代碼中定義了兩個(gè)函數(shù):

  1. get_running_processes(): 這個(gè)函數(shù)返回一個(gè)包含當(dāng)前運(yùn)行的所有進(jìn)程信息的列表。每個(gè)進(jìn)程信息是一個(gè)字典,包含進(jìn)程ID(pid)、進(jìn)程名稱(name)和進(jìn)程所屬用戶名(username)。?

  2. kill_process_by_name(process_name): 這個(gè)函數(shù)接受一個(gè)進(jìn)程名稱作為參數(shù),并嘗試殺死(結(jié)束)所有與該名稱匹配的進(jìn)程。

這里有一些要注意的點(diǎn):

  • psutil.process_iter()?函數(shù)用于遍歷系統(tǒng)中的所有進(jìn)程。你可以通過(guò)傳遞一個(gè)字段列表來(lái)限制返回的信息量,這里我們只關(guān)心進(jìn)程的 pid、name 和 username。
  • p.info?是一個(gè)字典,包含了進(jìn)程的所有信息。我們通過(guò)?p.info['name']?來(lái)獲取進(jìn)程的名稱。
  • p.kill()?方法用于結(jié)束進(jìn)程。這個(gè)方法會(huì)發(fā)送一個(gè) SIGTERM 信號(hào)給進(jìn)程,告訴它應(yīng)該優(yōu)雅地關(guān)閉。如果進(jìn)程不響應(yīng),可能會(huì)發(fā)送一個(gè) SIGKILL 信號(hào)來(lái)強(qiáng)制結(jié)束它。

請(qǐng)注意,結(jié)束進(jìn)程(特別是你沒(méi)有權(quán)限結(jié)束的進(jìn)程)可能會(huì)引發(fā)異常。在實(shí)際使用中,你可能需要添加適當(dāng)?shù)腻e(cuò)誤處理邏輯來(lái)處理這些異常。

此外,使用?kill_process_by_name?函數(shù)時(shí)要小心,因?yàn)樗鼤?huì)無(wú)條件地殺死所有匹配的進(jìn)程,這可能會(huì)導(dǎo)致不期望的行為。你可能需要添加一些額外的邏輯來(lái)確認(rèn)你要結(jié)束的進(jìn)程確實(shí)是你想要的,或者至少確保你不會(huì)意外地結(jié)束重要的系統(tǒng)進(jìn)程。

12.圖像尺寸調(diào)整和裁剪

from PIL import Image
def resize_image(input_path, output_path, width, height):image = Image.open(input_path)resized_image = image.resize((width, height), Image.ANTIALIAS)resized_image.save(output_path)
def crop_image(input_path, output_path, left, top, right, bottom):image = Image.open(input_path)cropped_image = image.crop((left, top, right, bottom))cropped_image.save(output_path)

函數(shù) resize_image?和?crop_image?分別用于調(diào)整圖像的大小和裁剪圖像。這些函數(shù)都使用了Pillow庫(kù)(PIL),這是一個(gè)用于處理圖像的庫(kù)。

  1. resize_image?函數(shù):

    • 參數(shù)

      • input_path:要調(diào)整大小的圖像的輸入路徑。
      • output_path:調(diào)整大小后的圖像的輸出路徑。
      • width:新圖像的寬度。
      • height:新圖像的高度。
    • 功能

      • 打開(kāi)位于?input_path?的圖像。
      • 使用?Image.ANTIALIAS?作為重采樣方法,將圖像的大小調(diào)整為?width?和?height。ANTIALIAS 是一種高質(zhì)量的重采樣濾鏡,可以減少調(diào)整大小時(shí)產(chǎn)生的鋸齒狀邊緣。
      • 保存調(diào)整大小后的圖像到?output_path。
  2. crop_image?函數(shù):

    • 參數(shù)

      • input_path:要裁剪的圖像的輸入路徑。
      • output_path:裁剪后的圖像的輸出路徑。
      • left:裁剪框的左邊界。
      • top:裁剪框的上邊界。
      • right:裁剪框的右邊界。
      • bottom:裁剪框的下邊界。
    • 功能

      • 打開(kāi)位于?input_path?的圖像。
      • 使用?crop?方法,根據(jù)提供的?left、top、right?和?bottom?邊界裁剪圖像。
      • 保存裁剪后的圖像到?output_path。

這些函數(shù)為圖像處理提供了基本的功能,可以幫助你輕松地調(diào)整圖像的大小或裁剪圖像。

13.圖片添加水印

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
def add_watermark(input_path, output_path, watermark_text):image = Image.open(input_path)draw = ImageDraw.Draw(image)font = ImageFont.truetype('arial.ttf', 36)draw.text((10, 10), watermark_text, fill=(255, 255, 255, 128), font=font)image.save(output_path)

函數(shù)?add_watermark?用于在給定的圖像上添加水印。水印是一個(gè)文本字符串,被放置在圖像的指定位置。這里使用了Python的Pillow庫(kù)(PIL的一個(gè)分支)來(lái)處理圖像。

以下是代碼的詳細(xì)解釋:

  1. 導(dǎo)入必要的模塊:

    • Image: 用于打開(kāi)、處理和保存多種格式的圖像文件。
    • ImageDraw: 提供了簡(jiǎn)單的圖形繪制功能,用于在圖像上繪制。
    • ImageFont: 用于處理字體,這樣你就可以在圖像上繪制文本。
  2. 定義?add_watermark?函數(shù):

    • input_path: 要添加水印的原始圖像的路徑。
    • output_path: 添加水印后的圖像的保存路徑。
    • watermark_text: 要作為水印添加到圖像上的文本。
  3. 函數(shù)內(nèi)部邏輯:

    • image = Image.open(input_path): 打開(kāi)位于?input_path?的圖像文件。
    • draw = ImageDraw.Draw(image): 創(chuàng)建一個(gè)可以在上面繪制的Draw對(duì)象。
    • font = ImageFont.truetype('arial.ttf', 36): 使用TrueType或OpenType字體文件創(chuàng)建一個(gè)字體對(duì)象。這里使用了Arial字體,大小為36。你需要確保arial.ttf文件在你的工作目錄中,或者提供正確的路徑。
    • draw.text((10, 10), watermark_text, fill=(255, 255, 255, 128), font=font): 在圖像上的位置(10, 10)繪制水印文本。文本的顏色是白色(RGB值為(255, 255, 255)),并且有一定的透明度(alpha值為128)。
    • image.save(output_path): 保存帶有水印的圖像到output_path指定的路徑。

這個(gè)函數(shù)允許你簡(jiǎn)單地為圖像添加水印,但你可能需要根據(jù)你的具體需求調(diào)整字體、大小、顏色、位置等參數(shù)。

14. 創(chuàng)建圖像縮略圖

from PIL import Image
def create_thumbnail(input_path, output_path, size=(128, 128)):image = Image.open(input_path)image.thumbnail(size)image.save(output_path)

這段代碼定義了一個(gè)名為 create_thumbnail 的函數(shù),用于創(chuàng)建一個(gè)指定大小的縮略圖。這個(gè)函數(shù)使用了 Python 的 Pillow 庫(kù)(PIL 的一個(gè)分支)來(lái)處理圖像。以下是代碼的詳細(xì)解釋:

  1. 導(dǎo)入 Image 類:from PIL import Image,這行代碼從 PIL 庫(kù)中導(dǎo)入了 Image 類,該類提供了打開(kāi)、操作和保存圖像文件的方法。
  2. 定義 create_thumbnail 函數(shù),三個(gè)參數(shù)分別為:
    * `input_path`: 輸入圖像的路徑。 ?
    * `output_path`: 縮略圖圖像的保存路徑。 ?
    * `size`: 縮略圖的大小,默認(rèn)為 `(128, 128)`(即寬度為 128 像素,高度為 128 像素)。
  3. 打開(kāi)輸入圖像:image = Image.open(input_path)
    這行代碼使用 Image.open 方法打開(kāi)位于 input_path 的圖像文件,并將其存儲(chǔ)在 image 變量中。
  4. 創(chuàng)建縮略圖:image.thumbnail(size)
    這行代碼使用 Image 對(duì)象的 thumbnail 方法來(lái)創(chuàng)建縮略圖。thumbnail 方法會(huì)保持圖像的縱橫比,同時(shí)確保圖像的最大尺寸不超過(guò) size 參數(shù)指定的寬度和高度。如果原始圖像的寬度和高度都小于 size,則圖像不會(huì)進(jìn)行縮放。
  5. 保存縮略圖:image.save(output_path)
    這行代碼將創(chuàng)建好的縮略圖保存到 output_path 指定的路徑。
  6. 調(diào)用示例:使用這個(gè)函數(shù),你可以輕松地為任何圖像創(chuàng)建一個(gè)指定大小的縮略圖。
    例如:create_thumbnail('path/to/input.jpg', 'path/to/output.jpg', size=(200, 200))
    這行代碼將創(chuàng)建一個(gè)最大尺寸為 200x200 像素的縮略圖,并將其保存到 'path/to/output.jpg'。?

15.PDF中提取文本

import PyPDF2
def extract_text_from_pdf(file_path):with open(file_path, 'rb') as f:pdf_reader = PyPDF2.PdfFileReader(f)text = ''for page_num in range(pdf_reader.numPages):page = pdf_reader.getPage(page_num)text += page.extractText()return text

這段代碼是一個(gè)用于從PDF文件中提取文本的函數(shù),使用了PyPDF2庫(kù)。

  1. 導(dǎo)入PyPDF2庫(kù)。
  2. 定義函數(shù)extract_text_from_pdf,它接受一個(gè)參數(shù)file_path,這是要從中提取文本的PDF文件的路徑。
  3. 使用with open(file_path, 'rb') as f:打開(kāi)文件,'rb'表示以二進(jìn)制讀模式打開(kāi)文件。
  4. 創(chuàng)建一個(gè)PdfFileReader對(duì)象pdf_reader來(lái)讀取打開(kāi)的PDF文件。
  5. 初始化一個(gè)空字符串text,用于存儲(chǔ)從PDF文件中提取的文本。
  6. 使用for循環(huán)遍歷PDF文件中的每一頁(yè)(range(pdf_reader.numPages)生成一個(gè)從0到pdf_reader.numPages - 1的整數(shù)序列)。
  7. 對(duì)于每一頁(yè),使用getPage(page_num)方法獲取該頁(yè)的對(duì)象,然后使用extractText()方法提取該頁(yè)的文本,并將其添加到text字符串中。
  8. 函數(shù)最后返回存儲(chǔ)了所有提取文本的text字符串。

請(qǐng)注意,PyPDF2extractText()方法可能無(wú)法完美地提取所有PDF文件中的文本,特別是對(duì)于那些包含復(fù)雜布局或特殊字體的文件。對(duì)于這種情況,可能需要使用其他更高級(jí)的PDF處理庫(kù),如PDFMinerpdfplumber。

16. 合并多個(gè)PDF文件

import PyPDF2  
def merge_pdfs(input_paths, output_path):  pdf_writer = PyPDF2.PdfFileWriter()  for path in input_paths:  with open(path, 'rb') as f:  pdf_reader = PyPDF2.PdfFileReader(f)  for page_num in range(pdf_reader.getNumPages()):  page = pdf_reader.getPage(page_num)  pdf_writer.addPage(page)  with open(output_path, 'wb') as f:  pdf_writer.write(f)

這段代碼使用PyPDF2庫(kù)合并多個(gè)PDF文件。函數(shù)?merge_pdfs 接受一個(gè)包含多個(gè)PDF文件路徑的列表input_paths和一個(gè)輸出文件路徑output_path。然后,它遍歷輸入文件列表,讀取每個(gè)文件,并將每一頁(yè)添加到一個(gè)PdfFileWriter對(duì)象中。最后,它將所有頁(yè)面寫入到指定的輸出文件中。以下是這段代碼的逐行解釋:

  1. import PyPDF2
    導(dǎo)入PyPDF2庫(kù),這是一個(gè)用于處理PDF文件的Python庫(kù)。

  2. def merge_pdfs(input_paths, output_path):
    定義一個(gè)名為merge_pdfs的函數(shù),它接受兩個(gè)參數(shù):一個(gè)包含多個(gè)PDF文件路徑的列表input_paths和一個(gè)輸出文件路徑output_path。

  3. pdf_writer = PyPDF2.PdfFileWriter()
    創(chuàng)建一個(gè)PdfFileWriter對(duì)象,該對(duì)象將用于寫入合并后的PDF文件的內(nèi)容。

  4. for path in input_paths:
    遍歷input_paths列表中的每個(gè)文件路徑。

  5. with open(path, 'rb') as f:
    使用with語(yǔ)句打開(kāi)當(dāng)前路徑下的PDF文件,'rb'表示以二進(jìn)制讀模式打開(kāi)文件。文件對(duì)象存儲(chǔ)在變量f中。

  6. pdf_reader = PyPDF2.PdfFileReader(f)
    創(chuàng)建一個(gè)PdfFileReader對(duì)象來(lái)讀取打開(kāi)的PDF文件。

  7. for page_num in range(pdf_reader.getNumPages()):
    遍歷當(dāng)前PDF文件的每一頁(yè)。getNumPages()方法返回PDF文件中的頁(yè)面數(shù)量。

  8. page = pdf_reader.getPage(page_num)
    使用getPage方法獲取當(dāng)前頁(yè)碼對(duì)應(yīng)的頁(yè)面對(duì)象。

  9. pdf_writer.addPage(page)
    將獲取到的頁(yè)面對(duì)象添加到PdfFileWriter對(duì)象中,以便稍后寫入到輸出文件中。

  10. with open(output_path, 'wb') as f:
    使用with語(yǔ)句打開(kāi)(或創(chuàng)建)輸出文件,準(zhǔn)備以二進(jìn)制寫模式寫入合并后的PDF內(nèi)容。

  11. pdf_writer.write(f)
    PdfFileWriter對(duì)象中的所有頁(yè)面寫入到輸出文件中。

當(dāng)你調(diào)用這個(gè)函數(shù)并傳入一個(gè)PDF文件路徑列表和一個(gè)輸出文件路徑時(shí),它將讀取所有輸入文件,并將它們的頁(yè)面合并到一個(gè)單一的輸出文件中。請(qǐng)確保你安裝了PyPDF2庫(kù)(使用pip install PyPDF2),并且輸入的PDF文件都是有效的。


http://aloenet.com.cn/news/32682.html

相關(guān)文章:

  • 哪個(gè)網(wǎng)站域名便宜seo報(bào)名在線咨詢
  • wordpress調(diào)用指定文章內(nèi)容seo優(yōu)化網(wǎng)站推廣全域營(yíng)銷獲客公司
  • 網(wǎng)站建設(shè)書本信息網(wǎng)站搜索引擎優(yōu)化的步驟
  • 北京網(wǎng)站設(shè)計(jì)方案優(yōu)化品牌seo關(guān)鍵詞
  • 服裝小訂單接單平臺(tái)seo網(wǎng)站優(yōu)化推廣費(fèi)用
  • 網(wǎng)站游戲制作開(kāi)發(fā)神秘網(wǎng)站
  • 建什么網(wǎng)站能百度收錄國(guó)際國(guó)內(nèi)新聞最新消息今天
  • 免費(fèi)php企業(yè)網(wǎng)站源碼關(guān)鍵詞優(yōu)化怎么做
  • 理財(cái)平臺(tái)網(wǎng)站建設(shè)交換鏈接營(yíng)銷成功案例
  • 互聯(lián)網(wǎng)行業(yè)信息網(wǎng)站免費(fèi)b2b網(wǎng)站推廣渠道
  • wordpress圖片燈箱效果修改百度seo營(yíng)銷推廣
  • 廣州做網(wǎng)站厲害的公司互聯(lián)網(wǎng)營(yíng)銷師證書騙局
  • 簡(jiǎn)單建設(shè)一個(gè)網(wǎng)站的過(guò)程長(zhǎng)春網(wǎng)站seo公司
  • 免費(fèi)信息網(wǎng)站建設(shè)7個(gè)湖北seo網(wǎng)站推廣策略
  • 陜西網(wǎng)站建設(shè)通報(bào)網(wǎng)址搜索
  • 做購(gòu)物網(wǎng)站 需要手續(xù)百度搜索廣告怎么投放
  • 020網(wǎng)站建設(shè)和維護(hù)費(fèi)用數(shù)據(jù)分析培訓(xùn)班
  • 做網(wǎng)站軟件html css百度灰色關(guān)鍵詞代做
  • 東莞做網(wǎng)站價(jià)格360網(wǎng)站推廣怎么做
  • 企業(yè)局域網(wǎng)游戲網(wǎng)站如何做限制自動(dòng)點(diǎn)擊器安卓
  • 哪里有學(xué)編程的培訓(xùn)班神馬seo教程
  • 寧晉網(wǎng)站建設(shè)代理價(jià)格深圳百度推廣優(yōu)化
  • 攝影網(wǎng)站建設(shè)廣東廣州疫情最新情況
  • 石家莊網(wǎng)站建設(shè)公司哪家好如何制作網(wǎng)頁(yè)鏈接
  • 小兔自助建站百度一下1688
  • 泉州網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣要求
  • 裝修網(wǎng)站怎么做seo 工具
  • 正保建設(shè)工程教育網(wǎng)站線上推廣方式有哪些
  • 家電維修做網(wǎng)站生意怎么樣合肥網(wǎng)站維護(hù)公司
  • 徐州網(wǎng)站建設(shè)哪家好企業(yè)管理培訓(xùn)機(jī)構(gòu)