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

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

目录

前言

一、文件和目录管理

1.读取文件结构

读取所有文件夹和文件

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

只读取到N级子文件夹

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

说明:

二、数据分析和处理

三、数据可视化

四、文本处理

总结


前言

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


一、文件和目录管理

  • osshutil:处理文件和目录操作,如复制、移动、删除文件。
  • glob:文件模式匹配,查找符合特定模式的文件。
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 模块来遍历文件夹中的文件和子文件夹,并打印出每个文件和文件夹的结构。

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

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

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 文件中:

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 文件中,并且只读取到三级子文件夹:

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级子文件夹

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

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/

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

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" 来选择进行处理(复制到指定文件夹或删除)。你可以根据实际需求调整处理逻辑和目标文件夹路径。

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 数据分析示例

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 示例

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:自然语言处理库,用于文本分析和处理。
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.mzph.cn/pingmian/49027.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于银联支付交易状态码的一些分析

目录 关于银联支付 一些准备 交易状态码的一些分析 小结 关于银联支付 目前B2C购物支付场景下,支付宝和微信的在线支付已经成为我们经常遇到的支付方式。另外,银联支付也是我们日常的一种支付方式,本文所指的银联支付即指中国银联网关支…

NumPy算法封装:优化你的科学计算

NumPy算法封装:优化你的科学计算 作为一名资深的Python程序员,我深知NumPy库在科学计算中的重要性。NumPy不仅提供了强大的多维数组对象ndarray,而且封装了一系列高效的算法,极大地简化了我们的编程工作。本文将深入探讨NumPy的算…

IActionResult 介绍

IActionResult 是 ASP.NET Core MVC 中的一个接口,它代表了一个动作(Action)方法的返回类型。在 ASP.NET Core MVC 中,控制器(Controller)中的每个动作方法都可以返回一个 IActionResult 或其派生类型的实例…

jdk1.8 List集合Stream流式处理

jdk1.8 List集合Stream流式处理 一、介绍(为什么需要流Stream,能解决什么问题?)1.1 什么是 Stream?1.2 常见的创建Stream方法1.3 常见的中间操作1.4 常见的终端操作 二、创建流Stream2.1 Collection的.stream()方法2.2 数组创建流2.3 静态工厂…

深度学习之DeepMind的AlphaZero

AlphaZero 是 DeepMind 开发的一种人工智能程序,最初在 2017 年推出。它是一种通用的自我学习算法,能够通过自我对弈来学习并掌握各种棋类游戏,比如国际象棋、围棋和将棋。与传统的棋类 AI 不同,AlphaZero 不依赖于人工设置的规则或数据库中的棋局,而是通过自我对弈和深度…

理解进程status的二进制位表示及进程等待(是什么,为什么,怎么办)

信号编号:低7位 状态编号:次低8位 1.子进程退出后会变为僵尸进程,将退出结果写入自身的task_struct结构体中 2.wait/waitpid是一个系统调用->OS可以读取子进程的task_struct 1.为什么要进行进程等待? 1.将子进程&#xff…

C语言 | Leetcode C语言题解之第241题为运算表达式设计优先级

题目: 题解: #define ADDITION -1 #define SUBTRACTION -2 #define MULTIPLICATION -3int* diffWaysToCompute(char * expression, int* returnSize) {int len strlen(expression);int *ops (int *)malloc(sizeof(int) * len);int opsSize 0;for (in…

Mybatis-Plus只将指定字段更新为null

不需要自定义sql&#xff0c;可以使用UpdateWrapper方式更新 Employee employee new Employee(); employee.setId(1L); employee.setOssIds(null); LambdaUpdateWrapper<Employee> lambdaUpdate Wrappers.lambdaUpdate(); lambdaUpdate.eq(Employee::getId, employee.g…

单周期CPU(三)译码模块(minisys)(verilog)(vivado)

timescale 1ns / 1ps //module Idecode32 (input reset,input clock,output [31:0] read_data_1, // 输出的第一操作数output [31:0] read_data_2, // 输出的第二操作数input [31:0] Instruction, // 取指单元来的指令input [31:0] …

Gradle自定义任务:构建自动化的瑞士军刀

Gradle自定义任务&#xff1a;构建自动化的瑞士军刀 Gradle是一个灵活且功能强大的构建系统&#xff0c;它允许开发者通过编写自定义任务来扩展其功能。自定义任务可以帮助自动化复杂的构建步骤&#xff0c;执行特定的脚本&#xff0c;或者与其他系统集成。本文将详细介绍如何…

LeetCode:x的平方根(C语言)

1、问题概述&#xff1a;给你一个非负整数 x&#xff0c;计算并返回 x 的 算术平方根 &#xff0c;返回类型得是一个整数&#xff0c;小数舍弃 2、示例 示例 1&#xff1a; 输入&#xff1a;x 4 输出&#xff1a;2 示例 2&#xff1a; 输入&#xff1a;x 8 输出&#xff1a;…

git stash 命令详解

git stash 描述 git stash 命令用于将当前工作目录中的未提交更改&#xff08;包括暂存区和工作区的更改&#xff09;保存到一个栈中&#xff0c;并恢复工作目录到干净的 HEAD 状态。这样您可以在不提交当前更改的情况下&#xff0c;切换到其他分支或进行其他操作。后续可以通…

前台文本直接取数据库值doFieldSQL插入SQL

实现功能&#xff1a;根据选择的车间主任带出角色。 实现步骤&#xff1a;OA的“字段联动”功能下拉选项带不出表“hrmrolemembers”&#xff0c;所以采用此方法。 doFieldSQL("select roleid from HrmResource as a inner join hrmrolemembers as b on a.id b.resource…

快速排序【示例】

冒泡排序可以说是我们学习的第一个真正的排序算法&#xff0c;并且解决了桶排序浪费 空间的问题&#xff0c;但在算法的执行效率上却牺牲了很多&#xff0c;它的时间复杂度达到了 O(N^2)。假如我 们的计算机每秒钟可以运行 10 亿次&#xff0c;那么对 1 亿个数进行排序&#xf…

【京存】助力《抓娃娃》后期制作!

沈腾马丽合体爆改偷感夫妇&#xff0c;暑期开大贴脸开笑!!西虹市IP爆笑回归!! 困苦的爹&#xff0c;辛劳的妈&#xff0c;破烂的院子&#xff0c;破碎的他。西虹市做大做强的路上怎么把老马家落下了?!!! “汤里没油&#xff0c;兜里没子”的马成钢(沈腾 饰)和春兰(马丽 饰)&…

Timm使用教程

Timm使用教程 kaggle代码链接&#xff1a;https://www.kaggle.com/code/hallo123/timm-tutorial&#xff08;逐步调试运行&#xff09; 官方指导链接&#xff1a;https://huggingface.co/docs/timm/quickstart#quickstart timm&#xff08;Pytorch Image Models&#xff09;项目…

收银系统源码-线上商城diy装修

线下线上一体化收银系统越来越受门店重视&#xff0c;尤其是连锁多门店&#xff0c;想通过线下线上相互带动&#xff0c;相互引流&#xff0c;提升门店营业额。商城商城如何装修呢&#xff1f; 1.收银系统开发语言 核心开发语言: PHP、HTML5、Dart后台接口: PHP7.3后合管理网…

使用Django Rest Framework构建API

Django Rest Framework (DRF) 是一个强大且灵活的工具集&#xff0c;用以构建Web API。它基于Django&#xff0c;一个非常流行的Python Web框架。在本文中&#xff0c;我们将深入探讨如何使用DRF来构建一个高效、结构化的API。 目录 使用Django Rest Framework构建API 一、环…

Android 11 Unable to start/bind service

今天在Android11上发现了一个的问题&#xff0c;如果目标Service的进程没有启动&#xff0c;那么无论是bindService还是startService都没有办法拉起指定的Service。 网上查了很多资料如下: 1.目标Service 设置 android:exported"true" 2.目标Service需要声明自定义权…

【SQLServer】如何设计日增几十万数据量的业务分库分表方案

随着公司的业务发展不断的壮大&#xff0c;像一些核心的业务&#xff08;如订单&#xff09;数据量会越来越大&#xff0c;此时就需要考虑分库分表方案来应对业务的发展。今天就来聊聊分库分表的一些设计方案。 1、冷热数据分离方案 在我们业务中有些数据只是最近一段时间使用…