Python字符串string方法大全及使用方法[1]以及FastAPI框架文件上传的处理-client使用postman
一、Python字符串string方法大全及使用方法[1]
1. Python字符串string方法大全及意义解释
#将字符串的第一个字符转换为大写
capitalize()
#返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
center(width, fillchar)
#返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
count(str, beg= 0,end=len(string))
#以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
encode(encoding='UTF-8',errors='strict')
#检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
endswith(suffix, beg=0, end=len(string))
#把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。
expandtabs(tabsize=8)
#检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
find(str, beg=0, end=len(string))
#index跟find()方法一样,只不过如果str不在字符串中会报一个异常。
index(str, beg=0, end=len(string))
#如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回 False
isalnum()
#如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False
isalpha()
#如果字符串中只包含空白,则返回 True,否则返回 False.
isspace()
#如果字符串只包含数字则返回 True 否则返回 False..
isdigit()
#检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。
isdecimal()
#如果字符串中只包含数字字符,则返回 True,否则返回 False
isnumeric()
#如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
isupper()
#如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
islower()
#如果字符串是标题化的(见 title())则返回 True,否则返回 False
istitle()
#将字符串中大写转换为小写,小写转换为大写
title()
#返回字符串长度
len(string)
#转换字符串中所有大写字符为小写.
lower()
#转换字符串中的小写字母为大写
upper()
#返回字符串 str 中最大的字母。
max(str)
#返回字符串 str 中最小的字母。
min(str)
2. Python上述字符串方法使用示例
#python字符串方法示例
def test_string():
a = "this is a test."
b = "这是一句中文"
c = " 两边有空格 中间有空格 "
d = "test"
print(a.capitalize())
#out : This is a test.
print(d.center(10, "-"))
#out: ---test---
print(d.center(11, "-"))
#此时就不居中了
#out: ----test---
print(a.count("is"))
print(a.count("is", 4))
#out:2 1
str_utf8 = b.encode("UTF-8")
print("UTF-8 编码:", str_utf8)
#out UTF-8 编码: b'\xe8\xbf\x99\xe6\x98\xaf\xe4\xb8\x...
print(c.endswith(" "))
#out: True
b = "这是一句\t中文"
print(b.expandtabs(tabsize=12))
print(b.expandtabs(tabsize=13))
print(a.find("test"))
print(a.index('test'))
print(a.find("ttt"))
#index找不到会报错
#print(a.index("ttt"))
print("12.34".isdigit())
print("0012.34".isdigit())
print("0012.34".isdecimal())
print("二".isdigit())
print("二".isnumeric())
print("IV".isnumeric())
print("IV".isdigit())
print("abc中".isalpha())
print("Hello,yes".istitle())
print("Hello,Yes".istitle())
#out: False False False False True False False True False True
print("This is a test, yes".title())
print(d.upper())
print("This is A Test".lower())
print(max(a))
print(min(d))
#out This Is A Test, Yes TEST this is a test t e
二、FastAPI框架文件上传的处理-client使用postman
使用FastAPI处理文件上传,文件上传Content-Type必须使用multipart/form-data,因为python服务端必须要安装python-multipart模块。另外在postman客户端,需要在body中选择form-data,在下面的key输入框右边鼠标停留(会出现一个下拉选择file/text),选择file表示这是个文件域,从而右边可以上传文件。此时header中会自动生成Content-Type:multipart/form-data; boundary=<calculated when request is sent> 项,不需要我们手动配置 publish:November 20, 2020 -Friday。
#python安装python-multipart模块
$ pip install python-multipart
Collecting python-multipart
Downloading python-multipart-0.0.5.tar.gz (32 kB)
Installing collected packages: python-multipart
Successfully installed python-multipart-0.0.5
现下来就是服务端的python处理程序了,FastAPI有两种处理的办法,一种是使用bytes二进制,一种是使用UploadFile。两种方法的示例代码如下:
from fastapi import File,UploadFile
import shutil
from pathlib import Path
from tempfile import NamedTemporaryFile
@app.post("/test/upload", summary="bytes方式")
async def test_upload(files: bytes=File(...)):
#打开一个文件。开始写入
with open("a.txt", "w+", encoding="utf-8") as f:
f.write(files.decode("utf-8"))
f.flush()
print(files.decode("utf-8"))
return {"file_size": len(files)}
@app.post("/test/fileupload", summary="UploadFile方式")
async def test_fileupload(files: UploadFile=File(...)):
save_dir = "./uploads"
try:
suffix = Path(files.filename).suffix
#创建一个临时文件并写入
with NamedTemporaryFile(delete=Falst, suffix=suffix, dir=save_dir) as tmp:
shutil.copyfileoby(files.file, tmp)
tmp_file_name = Path(tmp.name).name
finally:
files.file.close()
return {"old_name":files.filename, "tmp_name":tmp_file_name}