python之String字符串处理库,文件/目录,日期和时间

本文详细介绍了Python中字符串的查找、修改、删除方法,包括find、index、count、replace、split、join等。同时讲解了文件和目录的操作,如重命名、删除、创建、改变目录等。此外,还涉及了日期和时间的处理,如datetime.now()和datetime.strftime()。这些内容对于Python编程至关重要。
摘要由CSDN通过智能技术生成

目录

一,String字符串处理库

1,查找

案例

python中,检查s = 'jack love rose,im rose'中是否有rose

①find()

②rfind()

注意:因为find找的是下标,没有找到会返回-1

③index()

④rindex()

注意:与find不同的是 index没有找到会报错

⑤count()

综合案例,求有多少个a

s = 'asahdshgaahahjuahaudajhduaaa'

1,使用find

2,使用index

3,使用count

4,使用replace

 控制台运行效果

2,修改

①replace()

②split()

③join()

④capitalize()

⑤title()

⑥upper()

⑦lower()

⑧ljust()

⑨rjust()

⑩center()

3,删除(一般用于网页前端发送用户名,电话,密码等)

①lstrip()

②rstrip()

③strip()

4,判断

①startswith()

②endswith()

③isalpha()

④isdigit()

⑤isalnum()

⑥isspace()

二,Python文件/目录(os模块)

1,导入os模块

2,文件操作

①文件重命名

②删除文件

3,文件夹操作

①创建文件夹

②删除文件夹

③获取当前目录

④改变默认目录

⑤获取目录列表

⑥重命名文件夹

⑦删除文件夹

⑧递归删除

三,Python日期和时间

①datetime.now(),获取当前日期和时间

②datetime.today(),获取当前日期和时间

③datetime.strptime()

④datetime.strftime()


 

一,String字符串处理库

1,查找

案例

python中,检查s = 'jack love rose,im rose'中是否有rose

对比

Java中字符串的搜索   正向indexof   反向lastIndexOf

①find()

检测某个子串是否包含在这个字符串中,如果在 则返回这个子串开始的位置下标,否则返回-1

语法:字符串序列.find(子串,开始位置,结束位置)。开始位置和结束位置可以省略不

# 数组中是否存在某个元素
ns=[1,2,3,4,5,6]
print(6 in ns)

控制台返回True

# 正向
print(s.find('rose'))

控制台返回下标        10

②rfind()

和find()功能相同,但是查找方向为右侧开始

# 反向
print(s.rfind('rose'))

控制台返回下标        18

注意:因为find找的是下标,没有找到会返回-1

print(s.find('marry'))

控制台返回        -1

③index()

检测某个子串是否包含在这个字符串中,如果在 则返回这个子串开始的位置下标,否则报异常

语法:字符串序列.index(子串,开始位置,结束位置)。开始位置和结束位置可以省略不写

 # 正向

print(s.index('rose'))

控制台返回        10

④rindex()

和index()功能相同,但是查找方向为右侧开始

# 反向
print(s.rindex('rose'))

控制台返回18

注意:与find不同的是 index没有找到会报错

print(s.index('marry'))

 ⑤count()

返回某个子串在字符串中出现的次数

语法:字符串序列.count(子串,开始位置,结束位置)。开始位置和结束位置可以省略不写

综合案例,求有多少个a

s = 'asahdshgaahahjuahaudajhduaaa'

1,使用find

count为0,先用find找到第一个a的下标,count+1,开始位置为n+1,每找到下一个a的位置,count+1,直到找到数组的最后一位,循环结束

n = s.find('a')  # n得到的是下标
count = 0
while n != -1:
    # n+1如果位置不加一,那么就又找了自己
    n = s.find('a',n+1)
    count += 1
print(count)

控制台输出        11

2,使用index

count为0,先用index找到第一个a的下标,count+1,开始位置为n+1,每找到下一个a的位置,count+1,直到找到数组的最后一位,循环结束

count=0
try:#抓错
    n = s.index('a')
    while True:
        count+=1
        n=s.index('a',n+1)
except Exception:
    print(count)

控制台输出        11

3,使用count

print(s.count('a'))

控制台输出        11

4,使用replace

s2相当于把字符串中的a截掉了,因此s的长度减去s2的长度就是a的长度,即个数

s2=s.replace("a",'')#s2是没有a的
# 输出s2的长度
print(len(s)-len(s2))

控制台输出        11

 控制台运行效果

2,修改

①replace()

替换,语法:字符串序列.replace(旧子串,新子串,替换次数)

注意:不会改变原有的字符串数据,需要给调用的方法重新赋值给一个新的字符串变量

s='吃完蛋糕,玩一下乐高'
print(s)
print(s.replace('乐高', '积木', 1))

控制台输出        吃完蛋糕,玩一下乐高
                          吃完蛋糕,玩一下积木

②split()

按照指定字符分隔字符串,语法:字符串序列.split(分隔字符,num)

ns="1,2,3,4,5,6,7,8,9"   求和

1,先切割再求和

方法一

ns=ns.split(',')#ns返回数组 String类型
sum=0
for i in ns:
# sum+=i
#会报错,i遍历的是ns,ns是str类型,因此i也是str类型,这里的+只能用在str类型里,而sum是int类型,用在int类型里,那么 i也得是int类型,需要对i进行强转
    sum += int(i)
print(sum)

方法二:使用reduce回调函数

print(reduce(lambda a, b: int(a) + int(b), ns))

2,不切割,使用切片求和

#只要是数组或者集合,就可以使用切片(倒着来-2)
for i in ns[::2]:
    print(i)

控制台输出        45

③join()

用一个字符或子串合并字符串,即是将多个字符串合并成为一个新的字符串,常用在传递数据时

语法:字符或子串.join(多字符串组成的序列)

ns=['1001','1002','1003','1004']把数组转化成数据库需要的格式    where id in (1,2,3,4,5,6,7)
使用jion
print(','.join(ns))
使用reduce回调函数
print(reduce(lambda a, b: f'{a},{b}', ns))

控制台输出        1001,1002,1003,1004
                          1001,1002,1003,1004

④capitalize()

将字符串第一个字符转换成大写

# 语义化处理
# 首字母大写  大写  小写
print('hELlo world'.capitalize())

控制台输出        Hello world

注意:非首字母的大写字母会转成小写

⑤title()

将字符串每个单词首字母转换成大写

print('hELlo world'.title())

控制台输出     Hello World   

注意:非首字母的大写字母会转成小写

⑥upper()

将字符串所有字母都转成大写

print('hello world'.upper())

控制台输出        HELLO WORLD

⑦lower()

将字符串所有字母都转成小写

print('Hello World'.lower())

控制台输出         hello world

⑧ljust()

返回一个原字符串左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串

语法:字符串序列.ljust(长度,填充字符)

print('12345678901'.ljust(30, '.'))

控制台输出          12345678901.................

⑨rjust()

返回一个原字符串右对齐,并使用指定字符(默认空格)填充至对应长度的新字符串

语法:字符串序列.rjust(长度,填充字符)

print('12345678901'.rjust(30, '.'))

控制台输出          .................12345678901

⑩center()

返回一个原字符串中间对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
            语法:字符串序列.center(长度,填充字符)

print('12345678901'.center(30, '.'))

控制台输出          .........12345678901..........

注意:填充字符可以省略不写,默认是空格

3,删除(一般用于网页前端发送用户名,电话,密码等)

①lstrip()

删除字符串左侧空白字符串,相当于 ltrip

print('   16673579976   '.lstrip())

控制台输出        16673579976   

②rstrip()

删除字符串右侧空白字符串,相当于 rtrip

print('   16673579976   '.rstrip())

控制台输出           16673579976

③strip()

删除字符串两侧空白字符串,相当于 trip

print('   16673579976   '.strip())

控制台输出        16673579976

4,判断

①startswith()

检查字符串是否是以指定子串开头,是则返回True,否则返回False。如果设置开始位置和结束

位置下标,则在指定范围内检查

语法:字符串序列.startswith(子串,开始位置下标,结束位置下标)

print('test.aa.py.java'.startswith('test'))# 判断是否以test开头        返回True

②endswith()

检查字符串是否是以指定子串结尾,是则返回True,否则返回False。如果设置开始位置和结束

位置下标,则在指定范围内检查

语法:字符串序列.endswith(子串,开始位置下标,结束位置下标)

print('aa.py.java'.endswith('.java')) #判断是否是Java文件        返回True

③isalpha()

如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False

print('asgcbja'.isalpha())                返回        True
print('asgc123a'.isalpha())               返回        False

④isdigit()

如果字符串只包含数字则返回True否则返回False 

print('123456'.isdigit())        返回         True

⑤isalnum()

如果字符串至少有一个字符并且所有字符都是字母或数字或组合则返回True,否则返回False

print('asgc123a'.isalnum())        返回         True
print(''.isalnum())        返回         False

⑥isspace()

如果字符串中只包含空白,则返回True,否则返回False 

print(' '.isspace())  # 判断是否是空格        返回True

二,Python文件/目录(os模块)

1,导入os模块

from os import *
import os

2,文件操作

①文件重命名

os.rename(原文件名,新文件名)

os.rename('./a.mp4','./b.mp4')        

②删除文件

os.remove(文件名)

os.remove('b.mp4')

3,文件夹操作

①创建文件夹

os.mkdir(文件夹名)

os.mkdir('tempA')                #创建文件夹tempA
os.mkdir('tempA/tempB')          #在文件夹tempA下面创建文件夹tempB

 ②删除文件夹

os.rmdir(文件夹名)

os.rmdir('tempA/tempB')        #删除文件夹tempA下面的文件夹tempB

③获取当前目录

os.getcwd()

print(os.getcwd())

控制台输出        D:\python demo\p8

注:linux里面的命令 pwd显示当前的所在位置

④改变默认目录

os.chdir(目录)

os.chdir('./tempA')        #控制台输出        D:\python demo\p8\tempA

⑤获取目录列表

os.listdir(),获取当前目录下的所有文件列表

print(os.listdir())

控制台输出        ['.idea', 'a.mp4', 'main.py', 'tempA', 'test.py', 'test2.py', 'venv']

os.listdir(目录),获取指定目录下的所有文件列表

print(os.listdir('tempA'))

控制台输出        ['tempB']

​​​​​​​对文件夹进行遍历并且判断

for f in os.listdir():
    os.path.isdir()        #.isabs   .isfile   .islink   .ismount 等

⑥重命名文件夹

os.rename(原文件夹名,新文件夹名)

os.rename('tempA','tempC')

⑦删除文件夹

os.removedirs

# os是不支持删除非空文件的
#   自己写递归删除

os.removedirs('tempC')

⑧递归删除

shutil.rmtree('./tempC')        #tempC以及目录下的文件夹都被删除

注:相当于Linux里的rm-rf

三,Python日期和时间

①datetime.now(),获取当前日期和时间

from datetime import datetime        #导入 模块
print(datetime.now())

控制台输出        2022-03-11 20:40:00.397863

②datetime.today(),获取当前日期和时间

from datetime import datetime        #导入 模块
print(datetime.now())

控制台输出        2022-03-11 20:40:00.397863

③datetime.strptime()

转化字符串为datetime

datetime.strptime('2022/03/11',format('%Y/%m/%d'))

datetime.strptime('22/03/11',format('%y-%m-%d'))

控制台输出        2022-03-11 00:00:00
                          2022-03-11 00:00:00

注意:Y表示四位数年份,y表示两位数年份

④datetime.strftime()

转化datetime为字符串

print(datetime.strftime(datetime.now(), '%Y/%m/%d'))

控制台输出        2022/03/11

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小宝的宝呢

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

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

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

打赏作者

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

抵扣说明:

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

余额充值