IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python脚本杂记 -> 正文阅读

[Python知识库]Python脚本杂记

记录python脚本开发中的各种琐屑操作

持续更新ing

tkinter的一些基础操作

import tkinter as tk
from tkinter import filedialog

#创建一个窗口实例
root = tk.Tk()
root.title("title")
root.geometry("800x400+300+300")
root.mainloop()#进入消息循环,类似于进程阻塞。这一句一般放最后

#各种组件

#文本显示
label_title = tk.Label(root,text="这是一个文字显示栏",anchor="w",width=55,font=('Hiragino Sans GB W3', 10)).pack()

#文本输入框
et_title=tk.Entry(root,show=None, width=40,font=('Hiragino Sans GB W3', 12))
et_title.pack()
self.et_title.insert(0,"アンソロジー")
#插入必须要指定第一个参数index
#同理,删除的时候也如此,'end'表示直到结尾
self.et_creator.delete(0,'end')

#如果生成就pack(指写在同一行),则返回值是None,所以如果一般要追加编辑一个组件,最好是额外写一行pack()

#按钮
bt_chooseCover = tk.Button(root,text="ChooseCover",font=('JetBrains Mono', 12),width=20,height=1,command=self.chooseCover)
bt_chooseCover.pack(side="bottom")
#上下左右四种方位,可以写字符串,也可以写tk.BOTTOM的预设值。写'left'则会出现在左边且往后叠加,左,次左……依次排开。

#退出按钮
self.esc_bt = tk.Button(self)
self.esc_bt['width'] = 15
self.esc_bt['height'] = 1
self.esc_bt["text"] = "关闭"
self.esc_bt["command"] = super().quit
self.esc_bt.pack(side="bottom")

#检测用户是否点击右上角,可以进行拦截或做退出前的额外操作,如删除临时文件,检测io是否关闭等
def beforeQuit(self):
	if os.path.exists("temp/"):
	  # shutil.rmtree("temp/")
	  os.system("rmdir /s/q temp")
	super().quit()


#按钮一般都会涉及:用户按下后处理相应功能,同是锁住按钮放置多按或不允许并发
#锁住
bt_chooseCover.config(state=tk.DISABLED)
#解开
bt_chooseCover.config(state=tk.NORMAL)
#config可以修改组件的参数,当然也可以直接用字典类型(map、dict)的方式访问
bt_chooseBookDir = tk.Button(root,font=('JetBrains Mono', 12))
bt_chooseBookDir['width'] = 20
bt_chooseBookDir['height'] = 1
bt_chooseBookDir["text"] = "chooseBook"
bt_chooseBookDir["command"] = getImgDirectory
bt_chooseBookDir.pack(side="top")


#listbox以及右侧的垂直滚动条
scrolly = tk.Scrollbar(root)
scrolly.pack(side=tk.RIGHT, fill=tk.Y)

self.listbox_en = tk.Listbox(root,yscrollcommand=scrolly.set,width = 120)
listbox_en.pack(side=tk.LEFT, padx=5, pady=5)
listbox_en.delete(0, "end")

scrolly.config(command=listbox_en.yview)


#选择目录 默认目录是可选参数
default_dir = r"D:\"
filePath = tk.filedialog.askdirectory(title=u'选择文件', initialdir=(os.path.expanduser(default_dir)))
if filePath == "":
	return
'''
os.path.expanduser函数的作用
在linux下面,一般如果你自己使用系统的时候,是可以用~来代表"/home/你的名字/"这个路径的.但是python是不认识~这个符号的,如果你写路径的时候直接写"~/balabala",程序是跑不动的.所以如果你要用~,你就应该用这个os.path.expanduser把~展开.
'''

#选择文件,注意文件类型的写法,是一个2元组,前项为类型名称如图片文件,后者可以是字符串也可以是多个字符串的组成的元组。
filedialog_title = "选择章节"
chapterIndexPath = filedialog.askopenfilename(title = filedialog_title,multiple=False,\
          initialdir = self.Images_dir,filetypes=[("图片文件",('.jpg','.png')),('All Files', '*')])
if chapterIndexPath== "":
	return


os操作的细枝末节

#不存在则创建目录
myPath = r'D:\dir1\dir2\dir3'
if not os.path.exists(myPath):
	os.mkdir(myPath)
#递归新建目录
os.makedirs(myPath)


#遍历一个目录下的文件,os.listdir()函数获得目录下所有文件的文件名:
for imgFile in os.listdir(Images_dir):
	pass

#重命名
#新名称和旧名称可以都是绝对路径,也可以都是相对路径
os.rename(oldName , newName)

#获得文件所在父目录
parentDir = os.path.dirname()

(入门级)多线程操作

#创建并运行一个新的线程,第一个目标函数名,第二个位参数
参数用元组封装,如果参数只有一个,那记得带个逗号(元组方面的小细节)
_thread.start_new_thread(myFunction,(arg1,))
#函数可以用lambda表达式去调用一个函数。

在python里调用打包程序

#前提是安装了7z。当然,安装其他压缩软件也大抵会有对应的命令行指令
#什么?为何引入python的包?emmm。麻烦,命令行不爽么,速度还不慢。-mmt16参数指多核运行
cmd_7z = 'cd temp && 7z a "{}" -mmt16'.format(epubFileName)
# print(cmd_7z)
os.system(cmd_7z)

这里还指出了如何在一次os.system()函数的调用中执行两条逻辑有关联的命令的一种方法。os还提供了更多和cmd的交互的函数。下面引用一些其他大佬的笔记

1.os.system用来执行cmd指令,在cmd输出的内容会直接在控制台输出,返回结果为0表示执行成功
注意:os.system是简单粗暴的执行cmd指令,如果想获取在cmd输出的内容,是没办法获到的

2.如果想获取控制台输出的内容,那就用os.popen的方法了,popen返回的是一个file对象,跟open打开文件一样操作了,r是以读的方式打开
注意:os.popen() 方法用于从一个命令打开一个管道。在Unix,Windows中有效

import os

# popen返回文件对象,跟open操作一样
f = os.popen(r"python d:\hello.py", "r")

d = f.read()  # 读文件
print(d)
print(type(d))
f.close()

获取图片的宽和高

from PIL import Image

img = Image.open(coverImgPath)
coverWidth = img.size[0]
coverHeight = img.size[1]
img.close()
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 18:45:04  更:2021-09-11 18:46:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 13:45:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计