11 个非常实用的 Python 和 Shell 拿来就用脚本实例!("11 个实用 Python & Shell 脚本实例:拿来即用!")
原创
一、Python 脚本实例
以下是11个实用的Python脚本实例,可以帮助你解决日常开发中的各种问题。
1. 文件搜索
搜索指定目录下的文件。
import os
def search_files(directory, filename):
for root, dirs, files in os.walk(directory):
if filename in files:
print(os.path.join(root, filename))
search_files('/path/to/search', 'filename.txt')
2. 文件批量重命名
对指定目录下的文件进行批量重命名。
import os
def rename_files(directory, old_name, new_name):
for filename in os.listdir(directory):
if filename.startswith(old_name):
os.rename(os.path.join(directory, filename),
os.path.join(directory, filename.replace(old_name, new_name)))
rename_files('/path/to/files', 'old_name', 'new_name')
3. 文件内容读取
读取文件内容并打印。
def read_file(filename):
with open(filename, 'r', encoding='utf-8') as file:
content = file.read()
print(content)
read_file('example.txt')
4. 文件内容写入
将内容写入文件。
def write_file(filename, content):
with open(filename, 'w', encoding='utf-8') as file:
file.write(content)
write_file('example.txt', 'Hello, World!')
5. 文件大小统计
统计指定目录下所有文件的大小。
import os
def get_file_size(directory):
total_size = 0
for root, dirs, files in os.walk(directory):
for file in files:
total_size += os.path.getsize(os.path.join(root, file))
return total_size
print(get_file_size('/path/to/directory'))
6. 网络请求
发送HTTP请求并获取响应。
import requests
def send_request(url):
response = requests.get(url)
print(response.text)
send_request('https://www.example.com')
7. 数据库操作
连接数据库并执行SQL语句。
import sqlite3
def execute_sql(filename, sql):
conn = sqlite3.connect(filename)
cursor = conn.cursor()
cursor.execute(sql)
conn.commit()
conn.close()
execute_sql('example.db', 'CREATE TABLE IF NOT EXISTS example (id INTEGER PRIMARY KEY, name TEXT)')
8. 数据可视化
使用matplotlib绘制图表。
import matplotlib.pyplot as plt
def plot_chart(x, y):
plt.plot(x, y)
plt.show()
plot_chart([1, 2, 3, 4, 5], [1, 4, 9, 16, 25])
9. 数据加密
使用hashlib对字符串进行加密。
import hashlib
def encrypt_string(string):
hash_object = hashlib.sha256(string.encode())
hex_dig = hash_object.hexdigest()
return hex_dig
print(encrypt_string('Hello, World!'))
10. 进度条
使用tqdm库显示进度条。
from tqdm import tqdm
for i in tqdm(range(100)):
# 执行任务
pass
11. 并发执行
使用concurrent.futures库并发执行任务。
import concurrent.futures
def task(n):
return n * n
with concurrent.futures.ThreadPoolExecutor() as executor:
results = list(executor.map(task, [1, 2, 3, 4, 5]))
print(results)
二、Shell 脚本实例
以下是11个实用的Shell脚本实例,可以帮助你减成本时间Linux下的工作高效。
1. 系统信息显示
显示系统相关信息。
#!/bin/bash
echo "系统信息:"
echo "操作系统:$(uname -o)"
echo "内核版本:$(uname -r)"
echo "CPU型号:$(cat /proc/cpuinfo | grep 'model name' | awk '{print $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, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44, $45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55, $56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66, $67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77, $78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88, $89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99, $100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110, $111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121, $122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132, $133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143, $144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $154, $155, $156, $157, $158, $159, $160, $161, $162, $163, $164, $165, $166, $167, $168, $169, $170, $171, $172, $173, $174, $175, $176, $177, $178, $179, $180, $181, $182, $183, $184, $185, $186, $187, $188, $189, $190, $191, $192, $193, $194, $195, $196, $197, $198, $199, $200, $201, $202, $203, $204, $205, $206, $207, $208, $209, $210, $211, $212, $213, $214, $215, $216, $217, $218, $219, $220, $221, $222, $223, $224, $225, $226, $227, $228, $229, $230, $231, $232, $233, $234, $235, $236, $237, $238, $239, $240, $241, $242, $243, $244, $245, $246, $247, $248, $249, $250, $251, $252, $253, $254, $255, $256, $257, $258, $259, $260, $261, $262, $263, $264, $265, $266, $267, $268, $269, $270, $271, $272, $273, $274, $275, $276, $277, $278, $279, $280, $281, $282, $283, $284, $285, $286, $287, $288, $289, $290, $291, $292, $293, $294, $295, $296, $297, $298, $299, $300, $301, $302, $303, $304, $305, $306, $307, $308, $309, $310, $311, $312, $313, $314, $315, $316, $317, $318, $319, $320, $321, $322, $323, $324, $325, $326, $327, $328, $329, $330, $331, $332, $333, $334, $335, $336, $337, $338, $339, $340, $341, $342, $343, $344, $345, $346, $347, $348, $349, $350, $351, $352, $353, $354, $355, $356, $357, $358, $359, $360, $361, $362, $363, $364, $365, $366, $367, $368, $369, $370, $371, $372, $373, $374, $375, $376, $377, $378, $379, $380, $381, $382, $383, $384, $385, $386, $387, $388, $389, $390, $391, $392, $393, $394, $395, $396, $397, $398, $399, $400, $401, $402, $403, $404, $405, $406, $407, $408, $409, $410, $411, $412, $413, $414, $415, $416, $417, $418, $419, $420, $421, $422, $423, $424, $425, $426, $427, $428, $429, $430, $431, $432, $433, $434, $435, $436, $437, $438, $439, $440, $441, $442, $443, $444, $445, $446, $447, $448, $449, $450, $451, $452, $453, $454, $455, $456, $457, $458, $459, $460, $461, $462, $463, $464, $465, $466, $467, $468, $469, $470, $471, $472, $473, $474, $475, $476, $477, $478, $479, $480, $481, $482, $483, $484, $485, $486, $487, $488, $489, $490, $491, $492, $493, $494, $495, $496, $497, $498, $499, $500, $501, $502, $503, $504, $505, $506, $507, $508, $509, $510, $511, $512, $513, $514, $515, $516, $517, $518, $519, $520, $521, $522, $523, $524, $525, $526, $527, $528, $529, $530, $531, $532, $533, $534, $535, $536, $537, $538, $539, $540, $541, $542, $543, $544, $545, $546, $547, $548, $549, $550, $551, $552, $553, $554, $555, $556, $557, $558, $559, $560, $561, $562, $563, $564, $565, $566, $567, $568, $569, $570, $571, $572, $573, $574, $575, $576, $577, $578, $579, $580, $581, $582, $583, $584, $585, $586, $587, $588, $589, $590, $591, $592, $593, $594, $595, $596, $597, $598, $599, $600, $601, $602, $603, $604, $605, $606, $607, $608, $609, $610, $611, $612, $613, $614, $615, $616, $617, $618, $619, $620, $621, $622, $623, $624, $625, $626, $627, $628, $629, $630, $631, $632, $633, $634, $635, $636, $637, $638, $639, $640, $641, $642, $643, $644, $645, $646, $647, $648, $649, $650, $651, $652, $653, $654, $655, $656, $657, $658, $659, $660, $661, $662, $663, $664, $665, $666, $667, $668, $669, $670, $671, $672, $673, $674, $675, $676, $677, $678, $679, $680, $681, $682, $683, $684, $685, $686, $687, $688, $689, $690, $691, $692, $693, $694, $695, $696, $697, $698, $699, $700, $701, $702, $703, $704, $705, $706, $707, $708, $709, $710, $711, $712, $713, $714, $715, $716, $717, $718, $719, $720, $721, $722, $723, $724, $725, $726, $727, $728, $729, $730, $731, $732, $733, $734, $735, $736, $737, $738, $739, $740, $741, $742, $743, $744, $745, $746, $747, $748, $749, $750, $751, $752, $753, $754, $755, $756, $757, $758, $759, $760, $761, $762, $763, $764, $765, $766, $767, $768, $769, $770, $771, $772, $773, $774, $775, $776, $777, $778, $779, $780, $781, $782, $783, $784, $785, $786, $787, $788, $789, $790, $791, $792, $793, $794, $795, $796, $797, $798, $799, $800, $801, $802, $803, $804, $805, $806