python3 基本用法

python3 基本用法

1. Python3的格式化输出

使用str.format()方法。
for x in range(1, 11): 
  print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x))

print("\n {:-^120}".format("setup Test Test"))
print("\n {:-^120}".format("Start Test Time:" + start_time))

2. 删除文件与目录的方法

os.remove(file_path) # 删除文件, file_path如果是目录则抛出异常, remove() 同 unlink()的功能是一样的

os.removedirs(path) # 递归删除目录
目录必须为空目录,若目录被删除,removedirs则会继续删除父目录;子目录未删除成功则报错
例子:
   os.removedirs(“foo/bar/ba”) 将首先删除 “foo/bar/ba”目录,如果foo/bar是空,则会继续
   删除foo/bar,foo若为空则会继续删除foo 如果子目录不能成功删除,将 抛出异常
   
os.rmdir(path):删除目录
删除目录 path,要求path必须是个空目录,否则抛出OSError错误

递归删除目录和文件
通过shutil.rmtree(path)删除:
通过os.walk方法删除:
for root, dirs, files in os.walk(obj_dir, topdown=False):
    for name in files:
        print(name)
        os.remove(os.path.join(root, name))
    for name in dirs:
        print(name)
        os.rmdir(os.path.join(root, name))

3. python3 日期时间处理
python3 日期时间

import time
start_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

4. python3 代码格式化
black号称不妥协的代码格式化工具,为什么叫不妥协呢?因为它检测到不符合规范的代码风格直接就帮你全部格式化好,根本不需要你确定,直接替你做好决定。它也是 requests 作者最喜欢的工具之一.使用非常简单,安装成功后,和其他系统命令一样使用,只需在 black 命令后面指定需要格式化的文件或者目录就ok。
这是一款小而美的工具,它并不是完全按照 PEP8 规范来格式化,比如默认每行代码的字符数是88个,当然你可以通过参数 -l 自定义长度,能一行显示完成的代码会放在一行,比如有多个元素的列表.后者把多个元素放在一行,显然更易读,而且代码更紧凑(如果你的工资是按照代码行数来算的话,不建议这么做),Black 是 PEP8 的严格子集。

pip3 install --user black
git status -s | awk '{print $2}'  | grep ".py$" | xargs ~/.local/bin/black -l 120
~/.local/bin/black -l 120 XXX_test.py

5. python3 好用的日志模块
python3中超级好用的日志模块-loguru
Python3 日志(内置logging模块)

6. python3 判断文件是否存在

使用os模块

判断文件是否存在
import os
os.path.exists(test_file.txt)
#True

os.path.exists(no_exist_file.txt)
#False

判断文件夹是否存在
import os
os.path.exists(test_dir)
#True

os.path.exists(no_exist_dir)
#False

可以看出用os.path.exists()方法,判断文件和文件夹是一样。

只检查文件
import os
os.path.isfile("test-data")


判断文件是否可做读写操作

使用os.access()方法判断文件是否可进行读写操作。

语法:

os.access(path, mode)

path为文件路径,mode为操作模式,有这么几种:

os.F_OK: 检查文件是否存在;

os.R_OK: 检查文件是否可读;

os.W_OK: 检查文件是否可以写入;

os.X_OK: 检查文件是否可以执行

该方法通过判断文件路径是否存在和各种访问模式的权限返回True或者False。

import os
if os.access("/file/path/foo.txt", os.F_OK):
    print "Given file path is exist."
	

使用Try语句
直接使用open()方法来检查文件是否存在和可读写
可以在程序中直接使用open()方法来检查文件是否存在和可读写。

语法:

open()

如果你open的文件不存在,程序会抛出错误,使用try语句来捕获这个错误。

程序无法访问文件,可能有很多原因:

如果你open的文件不存在,将抛出一个FileNotFoundError的异常;

文件存在,但是没有权限访问,会抛出一个PersmissionError的异常。

所以可以使用下面的代码来判断文件是否存在:

try:
    f =open()
    f.close()
except FileNotFoundError:
    print "File is not found."
except PermissionError:
    print "You don't have permission to access this file."


使用pathlib模块
pathlib模块在Python3版本中是内建模块,但是在Python2中是需要单独安装三方模块。

使用pathlib需要先使用文件路径来创建path对象。此路径可以是文件名或目录路径。

检查路径是否存在
path = pathlib.Path("path/file")
path.exist()
检查路径是否是文件
path = pathlib.Path("path/file")
path.is_file()

7. python3 参数解析
https://www.cnblogs.com/zjuhaohaoxuexi/p/16726809.html
https://docs.python.org/zh-cn/3/library/argparse.html
https://cs.pynote.net/sf/python/202208222/

8. python3 处理路径问题

方法比较

方法 返回值 适用场景
str() 路径的字符串形式 一般用途
as_posix() POSIX 风格的路径字符串 确保返回以 / 分隔的路径
fspath() 路径的字符串形式 文件系统路径协议,显式调用
os.fspath() 路径的字符串形式 通用方法,适用于任何路径对象

验证多种方法

from pathlib import Path
import os

# 创建一个 Path 对象
path = Path("/home/user/documents")

# 使用不同的方法获取字符串路径
print(str(path))          # 输出: /home/user/documents
print(path.as_posix())    # 输出: /home/user/documents
print(path.__fspath__())  # 输出: /home/user/documents
print(os.fspath(path))    # 输出: /home/user/documents

总结

推荐使用 str(path) 来获取路径字符串,因为它简单直观,适合大多数场景。
如果需要确保路径以 POSIX 风格返回,可以选择 path.as_posix()。
如果与操作系统文件系统接口交互,os.fspath() 是更规范的方法。

9. python3 发送邮件

https://github.com/Hubery-Lee/Notes/blob/master/如何利用python发送邮件.md
https://gist.github.com/moonlighf/ea56ff9161a979d1852abcab13e5eacf


https://harmonyhu.com/2020/02/01/python-learn/

posted @ 2021-09-28 14:27  michaelchengjl  阅读(372)  评论(1)    收藏  举报