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 是否可以直接在文件中原地修改行|极客教程


python 获取脚本所在目录的正确方法

python 获取脚本所在目录的正确方法-CSDN 博客

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 实现【实时】显示进度条!-腾讯云开发者社区-腾讯云

python 相关的应用

https://www.python-office.com/