常用的python程序汇总——入门级

ops/2024/12/23 6:32:35/

只用于记录最近的一些日常程序。

目录

前言

一、文件和目录管理

1.读取文件结构

读取所有文件夹和文件

读取到N级子文件夹和文件

只读取到N级子文件夹

2.遍历文件并处理(复制、删除)

说明:

二、数据分析和处理

三、数据可视化

四、文本处理

总结


前言

Python 是一种高级编程语言,因其简洁易读、功能强大和广泛的应用而受到许多开发者的喜爱。


一、文件和目录管理

  • osshutil:处理文件和目录操作,如复制、移动、删除文件。
  • glob:文件模式匹配,查找符合特定模式的文件。
python">import os
import shutil# 创建目录
os.makedirs('example_dir', exist_ok=True)# 创建文件
with open('example_dir/example_file.txt', 'w') as f:f.write('Hello, World!')# 移动文件
shutil.move('example_dir/example_file.txt', 'example_dir/new_file.txt')# 删除文件
os.remove('example_dir/new_file.txt')# 删除目录
os.rmdir('example_dir')

1.读取文件结构

读取所有文件夹和文件

下面是一个 Python 脚本,它可以读取当前文件夹并打印出文件框架。这个脚本使用 os 模块来遍历文件夹中的文件和子文件夹,并打印出每个文件和文件夹的结构。

python">import osdef print_directory_structure(root_dir, indent=""):for item in os.listdir(root_dir):item_path = os.path.join(root_dir, item)if os.path.isdir(item_path):print(f"{indent}[Folder] {item}")print_directory_structure(item_path, indent + "  ")else:print(f"{indent}[File] {item}")if __name__ == "__main__":current_directory = os.getcwd()print(f"Directory structure of: {current_directory}")print_directory_structure(current_directory)

这个脚本会输出当前文件夹及其所有子文件夹和文件的层级结构。例如:

Directory structure of: /path/to/current/directory
[Folder] subfolder1
  [File] file1.txt
  [File] file2.txt
[Folder] subfolder2
  [Folder] subsubfolder1
    [File] file3.txt
[File] file4.txt
[File] file5.txt

如果想要的文件结构输出应该是以层级结构显示的目录和文件。下面是一个脚本,它会按照你所描述的方式来打印当前文件夹的文件框架。

python">import osdef print_directory_structure(root_dir, indent=""):for item in os.listdir(root_dir):item_path = os.path.join(root_dir, item)if os.path.isdir(item_path):print(f"{indent}— {item}/")print_directory_structure(item_path, indent + "    ")else:print(f"{indent}— {item}")if __name__ == "__main__":current_directory = os.getcwd()print(f"— {os.path.basename(current_directory)}/")print_directory_structure(current_directory, "    ")

运行这个脚本后,会输出当前文件夹及其所有子文件夹和文件的结构。例如:

— current_directory/
    — subfolder1/
        — file1.txt
        — file2.txt
    — subfolder2/
        — subsubfolder1/
            — file3.txt
    — file4.txt
    — file5.txt

可以将将文件结构输出到 readme.txt 文件中:

python">import osdef save_directory_structure_to_file(root_dir, file, indent=""):for item in os.listdir(root_dir):item_path = os.path.join(root_dir, item)if os.path.isdir(item_path):file.write(f"{indent}— {item}/\n")save_directory_structure_to_file(item_path, file, indent + "    ")else:file.write(f"{indent}— {item}\n")if __name__ == "__main__":current_directory = os.getcwd()with open("readme.txt", "w") as file:file.write(f"— {os.path.basename(current_directory)}/\n")save_directory_structure_to_file(current_directory, file, "    ")

运行这个脚本后,会在当前目录下生成一个 readme.txt 文件,内容是当前文件夹及其所有子文件夹和文件的结构。例如:

— current_directory/
    — subfolder1/
        — file1.txt
        — file2.txt
    — subfolder2/
        — subsubfolder1/
            — file3.txt
    — file4.txt
    — file5.txt

读取到N级子文件夹和文件

可以通过限制递归的深度来实现只读取三级子文件夹。下面是修改后的脚本,将文件结构输出到 readme.txt 文件中,并且只读取到三级子文件夹:

python">import osdef save_directory_structure_to_file(root_dir, file, indent="", depth=0, max_depth=3):if depth > max_depth:returnfor item in os.listdir(root_dir):item_path = os.path.join(root_dir, item)if os.path.isdir(item_path):file.write(f"{indent}— {item}/\n")save_directory_structure_to_file(item_path, file, indent + "    ", depth + 1, max_depth)else:file.write(f"{indent}— {item}\n")if __name__ == "__main__":current_directory = os.getcwd()with open("readme.txt", "w") as file:file.write(f"— {os.path.basename(current_directory)}/\n")save_directory_structure_to_file(current_directory, file, "    ", 1, 3)

运行这个脚本后,readme.txt 文件的内容将是当前文件夹及其最多三级子文件夹和文件的结构。例如:

— current_directory/
    — subfolder1/
        — file1.txt
        — file2.txt
    — subfolder2/
        — subsubfolder1/
            — file3.txt
    — file4.txt
    — file5.txt

只读取到N级子文件夹

例如最多只读取四级子文件夹,并且不包含文件名称:

python">import osdef save_directory_structure_to_file(root_dir, file, indent="", depth=0, max_depth=4):if depth > max_depth:returnfor item in os.listdir(root_dir):item_path = os.path.join(root_dir, item)if os.path.isdir(item_path):file.write(f"{indent}— {item}/\n")save_directory_structure_to_file(item_path, file, indent + "    ", depth + 1, max_depth)if __name__ == "__main__":current_directory = os.getcwd()with open("readme.txt", "w") as file:file.write(f"— {os.path.basename(current_directory)}/\n")save_directory_structure_to_file(current_directory, file, "    ", 1, 4)

运行这个脚本后,readme.txt 文件的内容将是当前文件夹及其最多四级子文件夹的结构,不包含文件名称。例如:

— current_directory/
    — subfolder1/
    — subfolder2/
        — subsubfolder1/
            — subsubsubfolder1/
    — subfolder3/

读取每级别子文件夹,不读取文件名称:

python">import osdef save_directory_structure_to_file(root_dir, file, indent=""):for item in os.listdir(root_dir):item_path = os.path.join(root_dir, item)if os.path.isdir(item_path):file.write(f"{indent}— {item}/\n")save_directory_structure_to_file(item_path, file, indent + "    ")if __name__ == "__main__":current_directory = os.getcwd()with open("readme.txt", "w") as file:file.write(f"— {os.path.basename(current_directory)}/\n")save_directory_structure_to_file(current_directory, file, "    ")

2.遍历文件并处理(复制、删除)

遍历指定文件夹下的文件,并根据文件的类型或文件名称是否包含 "kgtbg" 来选择进行处理(复制到指定文件夹或删除)。你可以根据实际需求调整处理逻辑和目标文件夹路径。

python">import os
import shutildef process_files(src_dir, dest_dir, keyword="kgtbg"):# 确保目标文件夹存在os.makedirs(dest_dir, exist_ok=True)for root, dirs, files in os.walk(src_dir):for file_name in files:file_path = os.path.join(root, file_name)if keyword in file_name:# 复制到指定文件夹shutil.copy(file_path, dest_dir)print(f"Copied: {file_path} to {dest_dir}")# 删除原文件os.remove(file_path)print(f"Deleted: {file_path}")else:print(f"Skipped: {file_path}")if __name__ == "__main__":source_directory = 'path/to/source_directory'  # 替换为源文件夹路径destination_directory = 'path/to/destination_directory'  # 替换为目标文件夹路径process_files(source_directory, destination_directory)

说明:

  1. os.makedirs(dest_dir, exist_ok=True):确保目标文件夹存在。如果目标文件夹不存在,os.makedirs 会创建它。

  2. os.walk(src_dir):遍历源文件夹及其所有子文件夹中的文件。

  3. if keyword in file_name:检查文件名是否包含指定的关键字 "kgtbg"。如果包含,执行处理操作。

  4. shutil.copy(file_path, dest_dir):将符合条件的文件复制到目标文件夹。

  5. os.remove(file_path):删除原文件。

  6. print:用于打印处理过程中的信息,便于跟踪操作。

二、数据分析和处理

  • Pandas:数据处理和分析,尤其适用于表格数据。
  • NumPy:数值计算,支持大规模的数组和矩阵运算。
  • SciPy:科学计算,包括优化、线性代数、积分等。

Pandas 数据分析示例

python">import pandas as pd# 读取数据
df = pd.read_csv('data.csv')# 显示前几行
print(df.head())# 数据统计
print(df.describe())# 数据过滤
filtered_df = df[df['column_name'] > 10]# 保存处理后的数据
filtered_df.to_csv('filtered_data.csv', index=False)

三、数据可视化

  • Matplotlib:生成静态、动态和交互式的图表。
  • Seaborn:基于 Matplotlib,提供更高级的统计图表。
  • Plotly:交互式图表和仪表盘。

Matplotlib 示例

python">import matplotlib.pyplot as plt# 示例数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]# 创建图表
plt.plot(x, y, marker='o')
plt.xlabel('X axis')
plt.ylabel('Y axis')
plt.title('Sample Plot')
plt.grid(True)
plt.savefig('plot.png')  # 保存图表
plt.show()  # 显示图表

四、文本处理

  • re:正则表达式,用于复杂的字符串匹配和替换。
  • nltkspaCy:自然语言处理库,用于文本分析和处理。
python">import retext = "The rain in Spain stays mainly in the plain."# 查找所有出现的 'in'
matches = re.findall(r'in', text)
print(f'Matches: {matches}')# 替换 'in' 为 'on'
new_text = re.sub(r'in', 'on', text)
print(f'New Text: {new_text}')


总结

        以上就是今天要讲的内容,本文仅仅简单介绍了一些常用 Python 程序的示例代码,涵盖数据分析、数据可视化、文件管理等。


http://www.ppmy.cn/ops/86249.html

相关文章

师资培训丨AIGC 技术与大模型应用开发实战线下广州班莅临泰迪智能科技参观调研

7月23日,2024年第二期全国数字人才技能提升师资培训班——AIGC 技术与大模型应用开发实战线下广州班莅临广东泰迪智能科技股份有限公司产教融合实训基地参观调研,来自全国各地三十多名高校教师参与本次活动。泰迪智能科技董事长张良均、校企合作经理吴桂…

API 技术开发分享:连接电商平台数据获取的桥梁

在当今数字化的时代,API(Application Programming Interface,应用程序编程接口)技术成为了实现不同系统之间通信和数据交换的关键。它就像是一座无形的桥梁,使得各种应用能够相互协作,共享资源,…

SQL 注入漏洞详解 - Union 注入

1)漏洞简介 SQL 注入简介 SQL 注入 即是指 Web 应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在 Web 应用程序中事先定义好的查询语句的结尾上添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,…

一下午连续故障两次,谁把我们接口堵死了?!

唉。。。 大家好,我是程序员鱼皮。又来跟着鱼皮学习线上事故的处理经验了喔! 事故现场 周一下午,我们的 编程导航网站 连续出现了两次故障,每次持续半小时左右,现象是用户无法正常加载网站,一直转圈圈。 …

常见的jmeter面试题及答案

1、解释什么是JMeter? JMeter是一款Java开源工具, 用于性能负载测试。它旨在分析和衡量Web应用程序和各种服务的性能和负载功能行为。 2、说明JMeter的工作原理? JMeter就像一群将请求发送到目标服务器的用户-样。它收集来自目标服务器的响应以及其他统计数据&…

MongoDB流量分析

MongoDB流量分析通常指的是对MongoDB数据库的网络通信量、操作频率、性能指标和资源利用情况进行监控和分析的过程。这有助于理解数据库的负载、性能、潜在的瓶颈和安全状况,以便进行优化和维护。MongoDB流量分析可以涵盖以下几个方面: 网络流量监控&…

[css3] 如何设置边框颜色渐变

div {border: 4px solid;border-image: linear-gradient(to right, #8f41e9, #578aef) 1; }参考: 5种CSS实现渐变色边框(Gradient borders方法的汇总

旗晟机器人人员行为监督AI智慧算法

在当今智能化浪潮汹涌的时代,智能巡检运维系统脱颖而出,成为化工、园区、变电站、输煤管廊、矿山等场景中不可或缺的重要组成部分,发挥着举足轻重的作用。智能巡检运维系统由巡检机器人硬件与AI智慧算法组成,以实现对工业场景巡检…