首页 > 行业资讯 > 10个拿来即用的Python自动化脚本

10个拿来即用的Python自动化脚本

时间:2023-12-02 来源: 浏览:

10个拿来即用的Python自动化脚本

原创 刘志军 Python之禅
Python之禅

VTtalk

Python程序员,现自由职业者,互联网创业

收录于合集
#自动化 1
#python 36
#程序员 7

今天打开公众号后台,发现这个号已经更新到了第600篇原创,平均每年大概100篇的样子,承蒙各位厚爱,6年时间,哪怕你们已经很少点开这个号,至少还 一直在关注着。

我要是再 不写点技术的内容真对不起每天新来的 粉丝朋友,  今天分享10个简单且实用的Python自动化脚本,适用于日常工作中的各种任务。

1. 批量修改文件扩展名

将指定目录下所有特定扩展名的文件更改为新的扩展名。

import  os def   rename_file_extensions (folder_path, old_ext, new_ext) :      for  filename  in  os.listdir(folder_path):          if  filename.endswith(old_ext):             base = os.path.splitext(filename)[ 0 ]             new_filename = base + new_ext             os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_filename)) # 使用示例:将所有.txt文件改为.md rename_file_extensions( ’/path/to/folder’’.txt’’.md’ )

2. 自动创建多个文件夹 快速创建一系列 以数字或日期命名的文件夹。

import  os def   create_folders (base_path, prefix, count) :      for  i  in  range( 1 , count +  1 ):         os.makedirs(os.path.join(base_path,  f" {prefix} {i} " )) # 使用示例:在指定路径下创建10个名为"Folder1"到"Folder10"的文件夹 create_folders( ’/path/to/base’’Folder’10 )

3. 下载网络图片

根据提供的URL列表下载图片。

import  requests def   download_images (url_list, save_folder) :      for  url  in  url_list:         img_data = requests.get(url).content         filename = url.split( ’/’ )[ -1 ]          with  open(os.path.join(save_folder, filename),  ’wb’as  file:             file.write(img_data) # 使用示例 url_list = [ ’http://example.com/image1.jpg’’http://example.com/image2.jpg’ ] download_images(url_list,  ’/path/to/save/folder’ )

4. 简单的文件搜索工具

在指定目录下搜索包含特定文本的文件。

import  os def   search_files (directory, text) :      for  filename  in  os.listdir(directory):          if  text  in  filename:             print(os.path.join(directory, filename)) # 使用示例:在目录中搜索包含"report"的文件 search_files( ’/path/to/directory’’report’ )

5. 批量删除特定扩展名的文件

在指定目录中删除所有特定扩展名的文件。

import  os def   delete_files_by_extension (folder_path, extension) :      for  filename  in  os.listdir(folder_path):          if  filename.endswith(extension):             os.remove(os.path.join(folder_path, filename)) # 使用示例:删除所有扩展名为.tmp的文件 delete_files_by_extension( ’/path/to/folder’’.tmp’ )

6. CSV文件转换为JSON

将CSV文件的内容转换为JSON格式。

import  csv import  json def   csv_to_json (csv_file_path, json_file_path) :      with  open(csv_file_path,  ’r’as  csv_file, open(json_file_path,  ’w’as  json_file:         reader = csv.DictReader(csv_file)         json_data = [row  for  row  in  reader]         json.dump(json_data, json_file, indent= 4 ) # 使用示例 csv_to_json( ’/path/to/file.csv’’/path/to/file.json’ )

7. 监控文件夹变化

实时监控指定文件夹的变化(如文件添加、删除、修改)。

import  time import  os def   monitor_folder_changes (folder_path) :     initial_files = set(os.listdir(folder_path))      while   True :         current_files = set(os.listdir(folder_path))         new_files = current_files - initial_files         deleted_files = initial_files - current_files          if  new_files:             print( f"Added:  {new_files} " )          if  deleted_files:             print( f"Deleted:  {deleted_files} " )         initial_files = current_files         time.sleep( 1 ) # 使用示例:监控指定文件夹 monitor_folder_changes( ’/path/to/monitor’ )

8. 简单的网页内容抓取

抓取网页的标题。

import  requests from  bs4  import  BeautifulSoup def   fetch_webpage_title (url) :     response = requests.get(url)     soup = BeautifulSoup(response.content,  ’html.parser’ )      return  soup.title.text # 使用示例 title = fetch_webpage_title( ’http://example.com’ ) print(title)

9. 批量修改图片尺寸

更改指定文件夹中所有图片的 尺寸。

from  PIL  import  Image import  os def   resize_images (folder_path, output_folder, size) :      for  filename  in  os.listdir(folder_path):          if  filename.lower().endswith(( ’.png’’.jpg’’.jpeg’ )):             img = Image.open(os.path.join(folder_path, filename))             img = img.resize(size, Image.ANTIALIAS)             img.save(os.path.join(output_folder, filename)) # 使用示例:将所有图片尺寸修改为500x500 resize_images( ’/path/to/images’’/path/to/output’ , ( 500500 ))

10. 批量压缩PDF文件

减小指定目录中所有PDF文件的大小。

from  PyPDF2  import  PdfFileReader, PdfFileWriter import  os def   compress_pdf (input_folder, output_folder) :      for  filename  in  os.listdir(input_folder):          if  filename.endswith( ’.pdf’ ):             pdf_reader = PdfFileReader(os.path.join(input_folder, filename))             pdf_writer = PdfFileWriter()              for  page_num  in  range(pdf_reader.getNumPages()):                 pdf_writer.addPage(pdf_reader.getPage(page_num))              with  open(os.path.join(output_folder, filename),  ’wb’as  out:                 pdf_writer.write(out) # 使用示例 compress_pdf( ’/path/to/pdf/folder’’/path/to/output/folder’ )

这些脚本覆盖了从文件管理、网络操作到图像处理等多种场景,可根据具体需求调整使用,希望你能用在工作场景。

和你分享技术 · 职场 · 副业 · 搞钱 加我微信(go2071)送你一份P y thon 学习资料 大礼包

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐