当前位置: 首页 > article >正文

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}

 


http://www.kler.cn/news/329969.html

相关文章:

  • 数据分析-27-基于pandas进行模糊匹配merge_asof和groupby分组统计
  • javaScript中的浅拷贝和深拷贝详解
  • synchronized底层是怎么通过monitor进行加锁的?
  • 【Bug】解决 Ubuntu 中 “error: Unable to Find Python3 Executable” 错误
  • 【C++算法】4.双指针_快乐数
  • redis 中IO多路复用与Epoll函数
  • 结合了LLM(大语言模型)的编辑器,不仅能理解人类语言,还能与用户互动,仿佛有了自己的思想。...
  • [倍福PLC]TwinCAT标准数据类型
  • WIFI网速不够是不是光猫的“路由模式”和“桥接模式”配置错了?
  • 在CentOS 7上安装WordPress的方法
  • 深入理解 C 语言中的内存操作函数:memcpy、memmove、memset 和 memcmp
  • Leetcode 每日一题:Crack The Safe
  • OSINT技术情报精选·2024年9月第4周
  • 经典面试题目---Spring IOC容器的核心实现原理
  • 数字控制系统
  • 区块链技术简介
  • 利用QGIS将.shp文件转换成json文件
  • VR 尺寸美学主观评价-解决方案-现场体验研讨会报名
  • 简单实现log记录保存到文本和数据库
  • 【Ubuntu】apt安装时报错:不再含有 Release 文件