1、下载Python编译器
- PyCharm官网下载地址
- 对于个人编程,下载免费版的Community即可
2、创建一个Python项目
- Python的最佳实现是为每个项目创建virtualenv。
- 为此,请展开Project Interpreter:New Virtualenv Environment节点,然后选择用于创建新虚拟环境的工具。
- 现在选择Virtualenv工具,并指定用于新虚拟环境的位置和基本解释器。
- 创建一个python file,就可以开启编程之旅了
添加/更换解释器
- 有时,我们要使用一些库的资源,但是程序无法运行,可能是python解释器版本太高,这时,我们需要降低解释器版本。具体操作如下:
python解释器下载官网
- 选择需要的版本进行下载
注:有一些版本时不持支下载的,需要再找其他版本下载
- 支持下载版本的页面
- 不支持下载版本的页面
- 下载完成之后,双击运行安装
- 选择自定义安装,勾选add to PATH
点击安装,等待安装完成即可
- 在编译器右下角进行解释器添加
- 右下角替换为所选版本解释器,即添加完成
3、牛刀小试:python开发几个小工具
- 注:要在python 3.8环境下使用
工具 | 功能 |
---|---|
Jpg2Png.py | 将同目录下的jpg转换为png |
Word2Pdf.py | 将同目录下的word文档转换为pdf |
Compress.py | 将指定目录下的文件压缩为zip/7z |
Decompress.py | 将当前目录下的zip/7z/rar解压 |
3.1、jpg转png
#####################################
#####################################
# @author leon
# @date 2023-06-26
# @description 将同目录下的jpg转换为png
#####################################
#####################################
import glob
import msvcrt
import os
from PIL import Image# 搜索当前文件夹中的jpg
jpg_files = glob.glob("*.jpg")
jpg_cnt = len(jpg_files)# 开始转换
if jpg_cnt > 0:print(f"当前文件夹有{jpg_cnt}张jpg")for jpg_file in jpg_files:jpg_name = os.path.basename(jpg_file)png_name = jpg_name.replace("jpg", "png")print(f"{jpg_name} ------> {png_name}\n")print("转换中, 请等待......")image = Image.open(jpg_name)image.save(png_name)print("转换完毕\n\n按下任意键结束")
else:print("当前文件夹中没有jpg\n")print("按下任意键结束")# 防止程序自行结束
msvcrt.getch()
3.2、Work2Pdf.py
########################################
########################################
# @author leon
# @date 2023-06-26
# @description 将同目录下的word文档转换为pdf
########################################
########################################
import glob
import msvcrt
import os
from docx2pdf import convert# 搜索当前文件夹中的docx/doc
word_files = glob.glob("*.docx") + glob.glob("*.doc")
word_cnt = len(word_files)# 开始转换
if word_cnt > 0:print(f"当前文件夹有{word_cnt}个word文档(docx/doc)")for word_file in word_files:word_name = os.path.basename(word_file)pdf_name = word_name.replace(".docx", ".pdf") if word_name.endswith(".docx") else word_name.replace(".doc", ".pdf")print(f"{word_name} ------> {pdf_name}\n")print("转换中, 请等待......")convert(word_name, pdf_name)print("转换完毕\n\n按下任意键结束")
else:print("当前文件夹中没有docx/doc文档\n")print("按下任意键结束")# 防止程序自行结束
msvcrt.getch()
3.3、Compress.py
########################################
########################################
# @author leon
# @date 2023-06-26
# @description 将指定目录下的文件压缩为zip/7z
########################################
########################################
import msvcrt
import zipfile
import py7zr
import osinput_folder_path = input("输入文件路径进行压缩: ")
input_compress_format = input("输入压缩格式(zip/7z): ")# 压缩为zip
def compress_zip(folder_path, compress_file_name):with zipfile.ZipFile(compress_file_name, 'w', zipfile.ZIP_DEFLATED) as zipf:for root, _, files in os.walk(folder_path):for file in files:file_path = os.path.join(root, file)print(f"compress --- {file_path}")zipf.write(file_path, os.path.relpath(file_path, folder_path))# 压缩为7z
def compress_7z(folder_path, compress_file_name):with py7zr.SevenZipFile(compress_file_name, 'w') as seven_z_f:for root, _, files in os.walk(folder_path):for file in files:file_path = os.path.join(root, file)print(f"compress --- {file_path}")seven_z_f.write(file_path, os.path.relpath(file_path, folder_path))# 开始压缩
if len(input_folder_path) > 0:if len(input_compress_format) > 0:if input_compress_format == "zip":zip_file_name = "compress_file.zip"print(f"{input_folder_path}中的文件被压缩至{zip_file_name}")print("压缩中, 请等待......")compress_zip(input_folder_path, zip_file_name)print("压缩完毕\n\n按下任意键结束")elif input_compress_format == "7z":seven_z_file_name = "compress_file.7z"print(f"{input_folder_path}中的文件被压缩至{seven_z_file_name}")print("压缩中, 请等待......")compress_7z(input_folder_path, seven_z_file_name)print("压缩完毕\n\n按下任意键结束")else:print("输入的不是zip或7z格式,无法压缩\n")print("按下任意键结束")# 防止程序自行结束
msvcrt.getch()
3.4、Decompress.py
########################################
########################################
# @author leon
# @date 2023-06-26
# @description 将当前目录下的zip/7z/rar解压
########################################
########################################
import glob
import msvcrt
import os
import zipfile
import rarfile
import py7zr# 解压zip
def decompress_zip(zip_file_name, decompress_file_name):with zipfile.ZipFile(zip_file_name, "r") as zip_ref:for file_info in zip_ref.infolist():# try:# file_info.filename = file_info.filename.encode('cp437').decode('utf-8')# # file_info.filename = unidecode(file_info.filename)# except UnicodeDecodeError:# file_info.filename = file_info.filename.encode('cp437').decode('gbk')print(f"decompress --- {file_info.filename}")zip_ref.extract(file_info, decompress_file_name)# 解压7z
def decompress_7z(seven_z_file_name, decompress_file_name):with py7zr.SevenZipFile(seven_z_file_name, "r") as seven_z_archive:seven_z_archive.extractall(decompress_file_name)# files = seven_z_archive.list()# for file_info in files:# file_name = file_info.filename# print(f"decompress --- {file_name}")# seven_z_archive.extract(decompress_file_name)# 解压rar
def decompress_rar(rar_file_name, decompress_file_name):with rarfile.RarFile(rar_file_name, "r") as rar_ref:for file_info in rar_ref.infolist():# try:# file_info.filename = file_info.filename.encode('cp437').decode('utf-8')# except UnicodeDecodeError:# file_info.filename = file_info.filename.encode('cp437').decode('gbk')print(f"decompress --- {file_info.filename}")rar_ref.extract(file_info, decompress_file_name)# 搜索当前文件中的zip/rar
compress_files = glob.glob("*.zip") + glob.glob("*.7z") + glob.glob("*.rar")
compress_cnt = len(compress_files)# 解压文件名
def get_decompress_name(temp_compress_name):if temp_compress_name.endswith(".zip"):return temp_compress_name.replace(".zip", "")elif temp_compress_name.endswith(".7z"):return temp_compress_name.replace(".7z", "")else:return temp_compress_name.replace(".rar", "")# 开始解压
if compress_cnt > 0:print(f"当前文件夹有{compress_cnt}个压缩文件(zip/rar/7z)")for compress_file in compress_files:compress_name = os.path.basename(compress_file)decompress_name = get_decompress_name(compress_name)print(f"{compress_name} ------> {decompress_name}")print("解压中, 请等待......")if compress_name.endswith(".zip"):# zipdecompress_zip(compress_name, decompress_name)print("解压完毕\n\n按下任意键结束")elif compress_name.endswith(".7z"):# 7zdecompress_7z(compress_name, decompress_name)print("解压完毕\n\n按下任意键结束")else:# rardecompress_rar(compress_name, decompress_name)# patoolib.extract_archive(compress_name, decompress_name)print("解压完毕\n\n按下任意键结束")
else:print("当前文件夹中没有zip/rar文档\n")print("按下任意键结束")# 防止程序自行结束
msvcrt.getch()