python - 常用函数

类型转换

1. 数字和字符串互转

      数字转字符串str(n)

      字符串转数字int('12')

2. 列表(或元组)和字符串互转

  a)列表转字符串

my_list = ['a', 'b', 'c']

my_string = ''.join(my_list)   # 使用 ''.join()
print(my_string)    # 打印:abc

  如果列表中是int型,可以使用map() (map函数会根据提供的函数对指定序列做映射)

list1 = [1, 2, 3]

b = ''.join(map(str, list1))
print(type(b), b)  # 打印:<class 'str'> 123

  b)字符串转列表

str1 = 'abc'
list1 = list(str1)  # 使用list()

print(list1)    # 打印:['a', 'b', 'c']

 3. 列表和元组互相转换

list()

tuple()

list_data = ('apple', 'banana', 'pear')
print(list_data)   # 打印:('apple', 'banana', 'pear')
tuple_data = list(list_data)
print(tuple_data)  # 打印:['apple', 'banana', 'pear']
list_data2 = tuple(tuple_data)
print(list_data2)  # 打印:('apple', 'banana', 'pear')

4. 字符串和字典互转

json.loads()     字符串-->字典

json.dumps()   字典-->字符串

import json

verify = {"code":"OK","result":'true',"message":"OK"}
print(verify)
print(type(verify))  # 打印:<class 'dict'>

v2 = json.dumps(verify)  # 转为字符串
print(v2)
print(type(v2))  # 打印:<class 'str'>


v3 = json.loads(v2)  # 转为字典
print(v3)
print(type(v3))  # 打印:<class 'dict'>

例1:python读取json文件。123.json文件如下:键和值都必须是双引号)

[
{"username": "zhangsan", "passwd": "123"},
{"username": "lisi", "passwd": "444"}
]

python代码如下:

import json

with open('/Users/zhangyang/Downloads/123.json', 'r') as f:
    data = f.read()

print(data)
print(type(data))  # 打印:<class 'str'>

a = json.loads(data)  # json文件本身为列表和字典格式,通过json将str转换为list类型
print(a) 
print(type(a), type(a[0]))  # 打印:<class 'list'> <class 'dict'>

例2:响应体转换为字典

ret = requests.get(url=url, headers=headers)

print(ret)  # 打印:<Response [200]>
print(type(ret))  # 打印:<class 'requests.models.Response'>
a = ret.json()  # 将requests.models.Response类型,转换为字典
print(type(a))  #打印:<class 'dict'>
print(a)  # 打印:{'code': 'OK', 'result': 123}
print(a['code'])  #打印:OK

 

字符串处理

1. 逆序打印字符串 

# 方法1:使用字符串切片
str1 = 'abcdefg'
print(str1[::-1])  # 打印:gfedcba

# 方法2:使用list的reverse方法
str1 = 'abcdefg'
list1 = list(str1)  # 字符串转列表
list1.reverse()
print(''.join(list1))  # 列表转字符串,打印:gfedcba

 2. 拆分字符串 split():通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)

str1 = 'www.baidu.com'

str2 = str1.split('.')

print(str2)     # 打印:['www', 'baidu', 'com']
print(str2[0])  # 打印:www
print(str2[1])  # 打印:baidu

 3. 大小写转换 str.upper()  str.lower()

print('fdsa'.upper())
print('Dfdas'.lower())

 

 

通用函数

1. 向上取整、向下取整、四舍五入

import math

n = 157/10
print(n)  # 15.7
print(math.ceil(n))  # 向上取整 16
print(math.floor(n))  # 向下取整 15
# 四舍五入
n = round(1.5)
print(n)  # 打印:2
m = round(1.2)
print(m)  # 打印:1

2. 随机数

import random

list1 = ['a', 'b', 'c', 'd', 'e']
aa = random.choice(list1)  # 从list1中随机获取一个元素
print(aa)

n = random.randint(1, 100)  # 从1到100中,随机获取一个值
print(n)

m = random.randrange(1, 100, 2)  # random.randrange(start, end, step),从1到100中,随机取一个奇数
print(m)

生成一组随机数列表:

import numpy
p = numpy.random.randint(1, 100, size=[3, 4])  # 1到100之间,3行4列的列表

打印:

[[51 33 82 84]
[35 36 67 57]
[13 97 15 93]]

3. 查看变量类型 type()

a = 199
b = 'fdsa'
c = ['d', 'fd', 'fds']
d = ('da', 'fds')
e = {
    'key1':'111',
    'key2':'222'
}

print(type(a))  # 打印:<class 'int'>
print(type(b))  # 打印:<class 'str'>
print(type(c))  # 打印:<class 'list'>
print(type(d))  # 打印:<class 'tuple'>
print(type(e))  # 打印:<class 'dict'>

 4. 查看变量的内存地址 id()

kk = 5
print(id(kk))  # 打印:4345756576

5. 获取文件的修改时间

print(os.path.getmtime('runtest.py'))

6. 判断所在操作系统

import platform

print(platform.platform())  # 打印:Darwin-19.4.0-x86_64-i386-64bit(Darwin是苹果电脑系统)
print(platform.system())    # 打印:Darwin

 

 

os模块

如果想实现与文件和文件夹有关的操作,就需要用到os模块

1. 列出某路径下所有的文件及文件夹(仅当前层级,不递归)

a = os.listdir('/tmp/zhangyang')  # os.listdir() 列出某路径下的所有文件及文件夹(仅当前层级,不递归)
print(a)  # 打印:['2.log', '1.log', 'a.txt', 'gb']

 2. 获取当前工作路径(不是工程路径)

import os

dir = os.getcwd()  # 获取当前工作路径
print(dir)  # 打印:/Users/zhangyang/PycharmProjects/testUI

3. 获取当前文件的绝对路径

path3 = os.path.abspath(__file__)  # 获取当前文件真正的绝对路径,打印:/Users/zhangyang/PycharmProjects/yft/config/cnf.py
path1 = os.path.abspath('.')      # 获取当前工作路径的绝对路径,(不建议使用)       打印:/Users/zhangyang/PycharmProjects/testUI
print(path1)
path2 = os.path.abspath('cnf.py')  # 获取当前工作路径的绝对路径,拼接文件名(无意义),打印:/Users/zhangyang/PycharmProjects/testUI/cnf.py
print(path2)

4. 获取当前文件的父目录

dir3 = os.path.dirname(path3)  # 获取父目录,打印:/Users/zhangyang/PycharmProjects/yft/config

 5. 增加路径

当前文件执行的目录加入到sys.path里面,后面不管你目录移动到什么位置,里面的文件都能执行。不过pycharm已经自动将工程目录加好了,可以忽略。(python执行py文件的时候,默认就会把当前路径加入到sys.path中

from os.path import abspath, dirname
import sys

project_dir = dirname(dirname(abspath(__file__)))  # 获取工程目录
sys.path.append(project_dir)  # 将工程目录加入到sys.path中

 6. 当前工作路径

当前工作路径:/Users/zhangyang/PycharmProjects/yft

当前文件目录:/Users/zhangyang/PycharmProjects/yft/api_operation/o1_public/o1_public.py

图片路径:      /Users/zhangyang/PycharmProjects/yft/image/image1.png

open('./image/image1.png', 'rb')  # ./指当前工作路径,而非当前文件所在目录

 

 

ps:

 __file__  代表当前脚本运行时的路径

cnf.py:

print(__file__)

终端用命令执行(在目录下直接执行):

python3 cnf.py

打印:cnf.py

终端用命令执行(带路径执行):

python3 /Users/zhangyang/PycharmProjects/yft/config/cnf.py

打印:/Users/zhangyang/PycharmProjects/yft/config/cnf.py

pycharm中运行结果如下:(pycharm自己会给增加一个绝对路径,终端里用命令执行是没有的

print(__file__)            # 打印:/Users/zhangyang/PycharmProjects/yft/config/cnf.py
print(abspath(__file__))   # 打印:/Users/zhangyang/PycharmProjects/yft/config/cnf.py
print(dirname(__file__))   # 打印:/Users/zhangyang/PycharmProjects/yft/config

 

posted @ 2020-08-01 10:23  小虫虫大虫虫  阅读(226)  评论(0编辑  收藏  举报