Python常用语法操作

以下列出在时间过程中常用到的几种 Python 脚本操作以及相关功能实现脚本。

Python常用语法操作_第1张图片

一、字符串操作

描述:包括字符串拼接、取子串、拆分、格式化等。

字符串拼接的六种方式

1)通过 “+” 连接多个字符串

s = 'a' + 'b'
print('s = ' + s)  // s = ab

Tips:“+” 加号连接符只能拼接两个字符类型数据,不能拼接非 str 类型型,如 int 等数值类型数据。

2)通过 "," ;连接多个字符

s = 'a' + 'b'
print('s =', s, s) // s = ab ab

Tips:打印一个字符可以以多个 “,” 分隔,连接的字符串直接会多出一个空格,所以不用再多加空格。

3)通过 "%" 链接一个字符串和一组变量进行格式化输出

s = '%s is from %s.' % ('Coral', 'China')
print(s)  // Coral is from China.

Tips:几种格式化占位符(%s-字符串,%d-整数,%f-浮点数,%x-十六进制),多个占位符就用一个 () tuple 包围。

4)通过字符串函数 join 连接字符串列表

str_list = ['python', 'java']
s = ''
print(s.join(str_list)) // pythonjava

Tips:join 为字符串函数,方法参数为一个列表,通过字符串调用可依次连接列表中的每一个元素。

字符串运算符
Python常用语法操作_第2张图片
字符串运算符.png

二、集合操作
描述:list、tuple、dict 相关操作

列表list增删查改取值操作
# 定义列表
a_list = []
# 取值
print(a_list[0])
# 遍历列表
for item in a_list:
    print(item)
# 新增数据
a_list.append('Google')
# 取列表长度
print(len(a_list))   
# 删除某个元素
del a_list[0] 

其他高级操作:http://www.runoob.com/python/python-lists.html

元组tuple增删查改取值操作

tuple 中的元素值是不允许修改,所以是不能低元素值进行赋值操作以及新增、删除某个元素,但是可以对元组进行连接组合以及删除整个元组。

# 定义元组
a_tuple = ()
b_tuple = (1, 2)
# 以下修改元组元素时非法操作
# b_tuple[0] = 1
# 连接两个元组为一个新的元组
c_tuple = a_tuple + b_tuple
# 删除整个元组
del a_tuple
字典dict增删查改取值操作
# 1)定义字典
a_dict = {'id': 1, 'name': 'xss'}
# 2)字典元素取值
print(a_dict['id'])
# 3)遍历key
# 方式一
for key in a_dict:
    print(a_dict[key])
#方式二(等价于方式一)
key_list = a_dict.keys()
for key in key_list:
    print(a_dict[key])
# 4)遍历 value
for value in a_dict.values():
    print(value)
# 5)遍历字典项
for k_v in a_dict.items():
    print(k_v)  # ('id', 1)  ('name', 'xss')    
# 6)遍历字典key和value
for k, v in a_dict.items():
    print(k + ':' + v)  
其他操作

如何对集合变量进行判空?

a_list = [] / {} / ()
if not a_list:
    print('a_list is not empty')

如何取集合长度?

a_list = [1, 'xs']
a_len = len(a_list)

三、命令行操作

# encoding:utf-8
import re
import os

# python 调用 shell 脚本的两种方式:
# os.system(cmd)
# os.popen(cmd)
# 区别:前者返回值仅为0(成功),1,2;后者会将执行的 cmd 的输出作为返回值,所以如果需要手机返回值则使用第二种执行方式。


# 功能:执行一般shell命令
def execute_cmd(cmd):
    os.system(cmd)


# 功能:获取 cmd 命令执行后的结果列表
def get_execute_cmd_result(cmd):
    return os.popen(cmd).readlines()


# 功能:获取adb启动activity命令结果列表
def execute_adb_start_cmd(cmd):
    outputs = get_execute_cmd_result(cmd)
    items = {}
    for line in outputs:
        m = re.search(r'(.*)(: )(.*)', line.strip())
        if m:
            # print('---')
            # print(m.group(0))  # 完整输出
            # print(m.group(1))  # : 前面部分/key
            # print(m.group(2))  # :
            # print(m.group(3))  # : 后面部分/value
            items[m.group(1)] = m.group(3)

    return items

四、文件IO操作

# encoding:utf-8
import shutil
import json
import os

'''
方法说明:
  - 普通文件直接读写;
  - 按行读取文件;
  - 拷贝文件;
  
  -----以下为未实现功能-----
  - 按字节读取大文件;
  - 按字节写入文件;
  - 新增 / 删除文件;
  - 查找某个目录下的所有子文件;
  - 查找某个特定的文件或目录;
'''


def read_file(file_path):
    f = open(file_path, 'r')
    content = f.read()
    f.close()
    return content


def read_byte_file(file_path):
    f = open(file_path, 'rb')
    content = f.read()
    f.close()
    return content


# 读取 json 文件数据
def read_json_file(file_path):
    with open(file_path, 'r') as f:
        return json.load(f)  # 返回为list类型


# 写入 json 数据
def write_json_content(file_path, data):
    with open(file_path, 'w') as f:
        json.dump(data, f)


# 按行读取文件内容
def read_file_by_line(file_path):
    lines = []
    f = open(file_path, 'r')
    for line in f.readlines():
        lines.append(line.strip())

    return lines


# 按字节读取大文件
def read_file_by_byte(file_path, buffer_size):
    f = open(file_path, 'r')
    result = ''
    content = f.read(buffer_size)
    result += content
    while len(content) > 0:
        content = f.read(buffer_size)
        result += content
    f.close()
    return result


# 将某个文件内容按行读到另一个文件中
def write_file(input_file, output_file):
    output = open(output_file, 'w')

    with open(input_file, 'r') as f:
        for line in f.readlines():
            output.writelines(line)


def write_content(content, output_file):
    output = open(output_file, 'w')
    output.write(content)


def write_byte_content(content, output_file):
    output = open(output_file, 'wb')
    output.write(content)


# 一次性写入
def write_string_content(content, output_file):
    output = open(output_file, 'w+')
    output.write(content)


# 文件复制
def copy_file(src_file, dist_file):
    # 文件复制可使用 shutil
    shutil.copyfile(src_file, dist_file)


# 列出某个目录下的文件
def list_file(dir):
    files = []
    if os.path.isdir(dir):
        list_dir = os.listdir(dir)
        for f in list_dir:
            if os.path.isfile(os.path.join(dir, f)):
                print(f)
                files.append(f)
    return files


# 列出某个目录下的所有文件
def list_all_file(dir):
    files = []
    if os.path.isdir(dir):
        list_dir = os.listdir(dir)
        for f in list_dir:
            if os.path.isfile(f):
                files.append(f)
            else:
                f = os.path.join(dir, f)
                list_all_file(f)
    return files

五、函数高级用法
描述:以函数为参数进行传递。

六、Q&A总结

  1. 出现中文字符运行不通过问题怎么办?
    — 在文件顶行添加 # encoding:utf-8 即可解决字符乱码运行出错问题。

  2. Pycharm 中 .py 文件无法相互 import 引用?
    — 参考:
    https://blog.csdn.net/qq_19339041/article/details/80088237
    https://blog.csdn.net/zhanguang000/article/details/53197600

  3. 如何安装和使用第三方库?
    —Python 之所以强大,主要在于其丰富的第三方库。pip 是 python 第三方库的包管理工具。由于 在 mac 上 python2 和 python3 是共存的,所有 python3 对应的包管理工具的命令就是: pip3 。
    — 如何安装 pip3 ? 如果通过 homebrew 安装 python3 则同时会安装 pip3,所有可通过 homebrew 安装 python3:

$brew install python3  // no need sudo

# 安装 pip3
$python3 get-pip.py

# 通过 pip3 下载第三方库 lxml
$pip3 install lxml 

你可能感兴趣的:(Python常用语法操作)