pythontips
pythontips
获取文件的修改时间和创建时间
python 获取文件修改和创建时间_python ftp 文件 修改时间_Hardy-Lee的博客-CSDN博客
python - How to read file attributes in a directory? - Stack Overflow
格式化时间
Python 中日期和时间格式化输出的方法-腾讯云开发者社区-腾讯云
Python datetime 格式化字符串:strftime()_datetime输出_ShomyLiu的博客-CSDN博客
替换文件内容
【Python】如何在文件夹里批量替换文本中的内容?_python 文件内容替换_YaoYee_7 的博客-CSDN 博客
python-修改文件内容并保存的 3 种方法_python 修改文件内容并保存_Sunshine_0426 的博客-CSDN 博客
python 常规的修改文件的做法是,将整个文件读取到内存中,在读的时候进行修改,然后再将修改后的内容写回原文件中。
使用 fileinput
模块来实现原地修改文件。
Python 中 fileinput 模块介绍python import fileinput 中文杰瑞 26 的博客-CSDN 博客
python 获取脚本所在目录的正确方法
C:test
|-getpath
|-path.py
|-sub
|-sub_path.py
我们在 C:\test 下面执行 python getpath/path.py,这时 sub_path.py 里面与各种用法对应的值其实是:
os.getcwd()
输出 C:\test
,取的是起始执行目录
sys.path[0]
或 sys.argv[0]
输出 C:\test\getpath
,取的是被初始执行的脚本的所在目录
os.path.split(os.path.realpath(__file__))[0]
输出 C:\test\getpath\sub
,取的是 file 所在文件 sub_path.py 的所在目录
在 python 脚本中执行命令行
Python 执行 cmd 命令的 3 种方法简单示例,并获取返回信息、执行命令结果(成功 or 失败)_python 执行 cmd 命令获取返回值-CSDN 博客
Python 使用 subprocess 开启新进程之旅_python subprocess 是开一个进程么-CSDN 博客
如果调用出现问题,进程无法停止,可以手动停止
https://blog.csdn.net/m0_38053092/article/details/107197738
subprocess.Popen
开启的子线程如果需要执行很长时间,最好是加上 process.wait()
,让主线程阻塞到子线程结束。
如果需要获取返回值,则循环读取返回值
while process.poll() is None:
print process.stdout.readline()
将 python 脚本打包成 exe 文件
通过 pyinstaller 将单个脚本打包成 exe 文件。
Python 脚本打包成 exe,看这一篇就够了!python 打包利白的博客-CSDN 博客
直接在 Python 解释器中通过 subprocess 执行命令,是很简单的,基本上不出现什么问题,但是要把执行命令的 Python 脚本打包成 exe,则有很多注意点,
如果想要不弹出 cmd 弹框,在 python 脚本中,应该配置哪些参数:
subprocess seems not working in pyinstaller exe file
pyinstaller 打包成无控制台程序时运行出错,与 popen 冲突的解决方法_python 不带控制台的打包出错-CSDN 博客
最终的代码如下:
#
# 博客同步到阿里云的工具,打包成 exe 的方式为,在当前脚本所在路径下执行 pyinstaller -F -w -i sync.ico rsync.py,然后 dist 目录下的就是此脚本打包出来的 exe 文件
# @author xiashuo
# @date 2023/10/7 10:35
#
import subprocess
import time
if __name__ == '__main__':
# 执行命令
# 注意,命令必须是全路径
rsync_command = "D:/cwRsync/cwrsync_6.2.9_x64_free/bin/rsync.exe -az --port 8730 --delete --password-file=/cygdrive/D/cwRsync/password.txt --exclude-from=/cygdrive/D/cwRsync/exclude.txt /cygdrive/D/Hugo/sites/xiashuo/public/ [email protected]::blog/"
# pyinstaller 如果带有 -w 参数,则必须指定 shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT 这一串参数
process = subprocess.Popen(rsync_command, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
process.wait()
pyinstaller 让我们可以轻松地 python 脚本打包成 exe,而且很轻松地解决了 cmd 弹框的问题,以前通过 powershell 来编写 Windows 脚本的时候,花了很多力气来隐藏 cmd 弹框,而且效果都不好,现在很方便地就解决了,以后 window 上做快捷执行,不用写 bat 了,直接用 python 写,然后打包成 exe 即可,方便得很,打包成 exe 分享给别人也特别方便。这就是 python 对 powershell 得降维打击啊兄弟们。
而且,python 脚本是跨平台的,放到 Linux 上也能执行,至少不用 window 用 powershell 写一套,Linux 上用 bash 写一套了,很方便。
Python 的实时进度条
Python 的实时进度条库,还挺有意思的,写 Python 脚本的时候可以用上
太好玩了!6 种 Python 实现【实时】显示进度条!-腾讯云开发者社区-腾讯云