python(小总结) 占位符、时间、

-----------------------------------占位符----------------------------------------

print '------%s---------%d--------%s-------' % ('ME',5,u'岁了')

'---字符串---{ }---字符串---{ }---字符串---{ }'.format(x1,x2,x3) #{ }中填x1,x2,x3 ,每个{ }是一个整体,{ }中自己定义。比上面的好用

----------------------------------------时间--------------------------------------

当地时间:

c = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
---------
import time
时间戳:(先转成时间数组,在转时间戳)
a = "2011-09-28 10:00:00"
time.strptime(a,'%Y-%m-%d %H:%M:%S')
b = time.mktime(time.strptime(a,'%Y-%m-%d %H:%M:%S'))
print b
----------
import datetime
datetime.datetime.now()
random.seed(datetime.datetime.now())

(1)time与datetime

  a、时间戳

  b、格式化的时间字符串

  c、元组(struct_time)共九个元素

方法:time.time()时间戳 

  time.clock

  time.sleep() 睡几秒

  time.gmtime()转换成元组(格林威治时区)

  time.localtime()转成元组(本机时区)

  time.mktime()元组转换成时间戳

  time.strftime()元组转换成字

  time.strptime()字符串转成元组(注意一一对应关系)

  asctime()元组转成字符串(特定格式)

  ctime()时间戳转成字符串(特定格式同上)

-------------------

.. 相对路径 父目录

cd  进入(change direction)

c: 进入跟目录

fileName =fileDirec.replace("\\", "/")

fileDirec = direc + '\\' + file_name

s_path = 'D:/blog/'
if not os.path.isdir(s_path):

----------

if country is None:

if country is not None:

----------

截取正则表达式后面的字符([1]):

 if re.search(r'68 [0-9][0-9] [0-9][0-9] [0-9][0-9] [0-9][0-9] [0-9][0-9] [0-9][0-9] 68 11',line):

              matchObj = re.search(r'68 [0-9][0-9] [0-9][0-9] [0-9][0-9] [0-9][0-9] [0-9][0-9] [0-9][0-9] 68 11',line).group()                          

               line.split(matchObj)[1][3:15]

----------

#!/usr/bin/python相当于写死了python路径;
#!/usr/bin/env python会去环境设置寻找python目录,推荐这种写法

----------

python2 默认ascii编码,python3默认utf-8编码。所以python3不用每个文件头加#coding=utf-8

----------

原生字符串 与 文件夹路径

root = "d:\\pic\\"       不用原生字符串时,字符串中每个字符前都要加\
root = r"d:\pic1\\"     \\" 不能写成\",输出:d:\pic1\\

root1 = r"d:\pic1" + "\\"
root3 = "d:\pic1\\"

root1、root3输出:d:\pic1\


--

mkdir 用于创建文件夹,而不是文件。创建文件用open(),写入内容来创建文件

root = r"d:\pic1\\"

path = root + url1.split(r'/')[-1]

if not os.path.exists(root):
     os.mkdir(root)
if not os.path.exists(path): 
    with open(path,"wb+") as f:
    f.write(r.content)
    print("保存成功")

-----调试技巧-----

raise 关键字;对Exception函数的调用

raise Exception('This is the error message.')

if len(symbol) != 1:
 raise Exception('Symbol must be a single character string.')  #raise抛出错误

def boxPrint(symbol, width, height):
    if len(symbol) != 1:
        raise Exception('Symbol must be a single character string.')
    if width <= 2:
        raise Exception('Width must be greater than 2.')
    if height <= 2:
        raise Exception('Height must be greater than 2.')
    print(symbol * width)
    for i in range(height - 2):
        print(symbol + (' ' * (width - 2)) + symbol)
    print(symbol * width)
       
for sym, w, h in (('*', 4, 4), ('O', 20, 5), ('x', 1, 3), ('ZZ', 3, 3)):
    try:
        boxPrint(sym, w, h)
    except Exception as err:     #err 代表上述raise抛出的错误
        print('An exception happened: ' + str(err))

assert 1==2,print("failed")  #assert用法的例子

assert,try ...except 区别:assert产生错误,程序会终止,try...except不会终止,程序会跳过try中的代码块,继续运行。assert是针对程序员,断言是针对开发的,不是针
对最终产品

,try...except针对用户

断点不要设置在for while这样的循环上,因为F8执行到下一个断点,进行下一次循环。相当于此处打了多个断点

调用栈 包括在 反向跟踪(traceback) 中,调用栈,函数调用关系:从上到下,从下往上,函数被调用。程序最终出错在调用栈的最下面。

反向跟踪写入文件:errorFile.write(traceback.format_exc())


----------

os模块中的system()函数可以方便地运行其他程序或者脚本。其函数原型如下所示。
os.system(command)
command  要执行的命令,相当于在Windows的cmd窗口中输入的命令。如果要向程序或者脚本传递参数,可以使用空格分隔程序及多个参数。
# 使用os.system()函数打开记事本程序
>>> os.system('notepad')
0 # 关闭记事本后的返回值
# 向记事本传递参数,打开python.txt文件
>>> os.system('notepad python.txt')
os.system(sys.argv[1])
sys.argv[1]表示cmd接收的第一个参数。 比如输入notepad,则打开记事本

----------------正则表达式----------------
rst = re.search(r'[1-9]\d{5}','BIT 100081') #筛选邮编地址
等价于:
pat = re.compile(r'[1-9]\d{5}')
rst = pat.search('BIT 100081')

.group的编号:
编号为0的group,始终代表匹配的整个字符串;
你在正则表达式内所看到的,通过括号括起来的group,编号分别对应着1,2,3,…

----------


----------文件读写权限------------------
+ 读写模式
b 二进制模式
a 追加模式
r 只读模式
w 只写模式
没有rw, 是r+ 或者w+

详细如下:

******************************

r 以只读方式打开文件。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+ 打开一个文件用于读写。
rb+ 以二进制格式打开一个文件用于读写。
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

******************************

-----文件读写-----


----------

----------

----------

----------

----------




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值