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}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林戈的IT生涯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值