常用模板
模板初始化
'''声明使用python语言解释当前脚本。目的就是为了让shell知道您运行了一个python脚本嘛。'''
#!/usr/bin/env python
'''声明当前脚本以utf-8的编码方式在本地存储。一,目的就是为了节约本地硬盘存储空间嘛。二,当你的脚本中包含中文时,对于python2.7来说,默认脚本存储使用ASSIC的编码方式存储,ASSIC不识别中文,保存就会出错啦。'''
#_*_ coding:utf-8 _*_
'''created by : dfq
function :
'''
文本处理模板
获取元素出现次数及位置索引
以数组为例
对特定元素内容进行替换
常用脚本命令总结
如何对文件的数据进行处理
如何读文件内容,方法二?
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
import json
filename = 'numbers.json'
with open(filename) as file_object:
numbers = json.load(file_object)
print(numbers)
如何读文件内容?
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
filename = 'pi_digits.txt'
with open(filename) as file_object:
for line in file_object:
print(line.rstrip())
关键字with 在不再需要访问文件后将其关闭。在这个程序中,注意到我们调用了open() ,但没有调用close() ;你也可以调用open() 和close() 来打开和关闭文件,但
这样做时,如果程序存在bug,导致close() 语句未执行,文件将不会关闭。这看似微不足道,但未妥善地关闭文件可能会导致数据丢失或受损。如果在程序中过早地调
用close() ,你会发现需要使用文件时它已关闭 (无法访问),这会导致更多的错误。并非在任何情况下都能轻松确定关闭文件的恰当时机,但通过使用前面所示的结构,可
让Python去确定:你只管打开文件,并在需要时使用它,Python自会在合适的时候自动将其关闭。
使用readlines按行读取文件内容
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
filename = 'pi_digits.txt'
with open(filename) as file_object
lines = file_object.readlines()
for line in lines:
print(line.rstrip())
如何写入文件,方法二?
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
import json
numbers = [1,3,5,7,9]
filename = 'numbers.json'
with open(filename,'w') as file_object:
json.dump(numbers,file_object)
如何写入文件?
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
filename = 'porgraming.txt'
with open(filename,'w') as file_object:
file_object.write("technology change world")
以写入模式打开文件,如果指定的文件已存在,python会在返回文件对象前清空该文件
如何以追加方式写入文件?
#!/usr/bin/env python
#_*_ conding:utf-8 _*_
filename = 'programing.txt'
with open(filename,'a') as file_object:
file_object.write("machine is unknow.\n")
file_object.write("ai is unknow.\n")
以附加模式打开文件时,Python不会在返回文件对象前清空文件,而是将写入的行都添加到文件末尾,如果指定文件不存在,则创建一个空文件。
如何将缓存区的数据强制写到文件中?
f.flush()
如何tab补全命令?
'''导入tab模块实现tab命令补全功能'''
import tab
字符串都有哪些常用的方法呢?
如何以交互式的方式获取用户信息?
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
'''使用函数raw_input()。该函数接收用户提示信息的字符串并向用户展示,告诉用户你需要输入什么。同时获取用户的输入,此处将得到的用户输入信息保存到变量name中。'''
name = raw_input('Please input you name:')
如何以格式化的方式输出内容?
$ vim 200111_print.py
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
name = input("Please input you name :")
age = input("Please input you age :")
salary = input("Please input you salary :")
print(
'''
------------------------------------
Personal infomation of %s:
Name : %s
Age : %s
Salary : %s
------------------------------------
''' % (name,name,age,salary))
#执行测试
$ python 200111_print.py
Please input you name :dfq
Please input you age :25
Please input you salary :7000
------------------------------------
Personal infomation of dfq:
Name : dfq
Age : 25
Salary : 7000
------------------------------------
%s : 代表字符串
%d : 代表数字
%f : 代表浮点数
input在python3中默认采集到的数据类型都是str类型,无论用户输入的是数字还是浮点数。
如何print具备颜色的信息?
print('\033[31;1m type(age) \033[0m')
其中“\033[31;1m \033[0m”实现的颜色输出是利用Linux的tty输出实现的。
如何执行shell命令?
方法一:
'''导入常用的与操作系统交互的模块os'''
import os
'''执行系统shell命令。返回执行命令得到的结果以及执行命令的状态(是否执行成功)。状态值为0代表命令执行成功;状态值非0代表命令执行失败或异常。'''
os.system('df')
方法二:
'''导入常用的与操作系统交互的模块os'''
import os
'''执行系统shell命令并保存到临时文件'''
os.popen('dir')
'''读取临时文件的内容到变量a'''
a = os.popen('dir').read()
'''查看变量a的内容'''
print(a)
'''(0, '驱动器 C 中的卷是 我很重要
卷的序列号是 7464-B46A
C:\Users\Administrator 的目录
2020/01/10/周五 21:01 <DIR> .
2020/01/10/周五 21:01 <DIR> ..
0 个文件 97,644 字节
34 个目录 17,350,942,720 可用字节')
'''
方法三:
'''导入执行命令专用模块subprocess'''
import subprocess
#获取shell命令dir的结果并保存到变量b
b = subprocess.getstatusoutput('dir')
''' 查看变量b的内容'''
print(b)
'''(0, '驱动器 C 中的卷是 我很重要
卷的序列号是 7464-B46A
C:\Users\Administrator 的目录
2020/01/10/周五 21:01 <DIR> .
2020/01/10/周五 21:01 <DIR> ..
0 个文件 97,644 字节
34 个目录 17,350,942,720 可用字节')
'''
方法四(python3不支持此方法):
'''导入执行命令专用模块commands'''
import commands
#获取shell命令dir的结果并保存到变量b
c = commands.getstatusoutput('dir')
''' 查看变量c的内容'''
print(c)
'''(0, '驱动器 C 中的卷是 我很重要
卷的序列号是 7464-B46A
C:\Users\Administrator 的目录
2020/01/10/周五 21:01 <DIR> .
2020/01/10/周五 21:01 <DIR> ..
0 个文件 97,644 字节
34 个目录 17,350,942,720 可用字节')
'''
os模块都有啥功能?
目录遍历
>>>dirA = os.walk(‘/tmp’) #对tmp目录进行(爬)遍历
>>>dirA.next()
(‘tmp’,xxxx)
>>>dirA.next()
(‘tmp/1’,xxxxxx)
>>>dirA.next()
(‘tmp/2’,xxxxxx)
sys模块都有啥功能?
获取执行脚本时传递的参数
$vi test1.py
import sys
print sys.argv #调用sys模块的argv方法打印脚本后面紧跟的参数
print sys.argv[2] #取2位置的参数
#执行脚本并附加参数
$python test1.py arg1 2 3 4 5 #此时输出脚本test1.py后面紧跟的全部参数
#输出如下
[‘test1.py’,’arg1’,’2’,’3’,’4’,’5’,]
2
collections模块都有啥功能?
OrderedDict类
OrderedDict类可实现对字典对象中元素的排序。即元素存储时按顺序存入,读取时按顺序读出。
如何实现字符编码转换?
>>> name = '段富强'
>>> type(name)
<class 'str'>
#以utf-8方式编码
>>> name_en = name.encode("utf-8")
>>> name_en
b'\xe6\xae\xb5\xe5\xaf\x8c\xe5\xbc\xba'
>>> type(name_en)
<class 'bytes'>
#以utf-8方式解码
>>> name_de = name_en.decode("utf-8")
>>> name_de
>>> type(name_de)
<class 'str'>
'段富强'
#以Unicode方式编码
>>> name_un = name.encode('unicode_escape')
>>> name_un
b'\\u6bb5\\u5bcc\\u5f3a'
>>> type(name_un)
<class 'bytes'>
>>> print("\u6bb5\u5bcc\u5f3a")
段富强
还是人家写的好,有兴趣的参考下这个链接吧:
https://www.cnblogs.com/yangmingxianshen/p/7990102.html
https://www.cnblogs.com/Xuuuuuu/articles/9670451.html