版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
记录python一些技巧
1、使用if a is not b
,而非if not a is b
。
2、不用if len(somelist) == 0
来检查空值,而用if not somelist
来检查(它会假定:空值将自动评估为False)。
3、检测是否为非空值时,用if somelist
会默认把非空值判断为True
4、引入模块的时候,总是应该使用绝对名称,而不应该根据当前模块的路径来使用相对名称。例如,引入bar包中的foo模块时,应该完整写出from bar import foo
。如果一定要用相对名称来编写import语句,那就采用明确的写法:from.import foo
。import语句按顺序分三部分,分别代表标准库模块、第三方模块及自用模块,在每一部分中,各import语句应该按模块的字母顺序来排序。
5、实现接受str或unicode,并总返回unicode:
-
def to_unicode(unicode_or_str):
-
if isinstance(unicode_or_str,str):
-
value = unicode_or_str.decode(
'utf-8')
-
else:
-
value = unicode_or_str
-
return value
6、实现接受str或unicode,并总返回str
-
def to_str(unicode_or_str):
-
if isinstance(unicode_or_str,unicode):
-
value = unicode_or_str.encode(
'utf-8')
-
else:
-
value = unicode_or_str
-
return
7、用列表推导来取代map和fileter
8、合并pdf
-
import os
-
from PyPDF2
import PdfFileReader,PdfFileMerger
-
files_dir =
'e:\\pdf'
-
pdf_files = [f
for f
in os.listdir(files_dir)
if f.endswith(
'pdf')]
-
merger = PdfFileMerger()
-
for filename
in pdf_files:
-
merger.append(PdfFileReader(os.path.join(file_dir,filename),
'rb'))
-
merger.write(os.path.join(files_dir,
'merged_full.pdf'))
9、文件排序(os.listdir不按照特定顺序排序)
-
files = os.listdir(
'.')
-
# [:
-4]=.后缀
-
files.sort(key = lambda x:int(x[:
-4]))
10、shutil.rmtree删除中文目录提示错误处理方式
-
import shutil
-
shutil.rmtree(ur
'E:\XX\中文目录)
-
# 在路径前面加u代表对字符串进行unicode编码
-
11、自动补0
-
n =
'123'
-
s = n.zfill(
5)
-
print s
-
>>>
-
'00123'
-
-
n =
'-123'
-
s = n.zfill(
5)
-
print s
-
>>>
-
'-0123'
-
-
# 对于纯数字,可以通过格式化的方式来补
0
-
n =
123
-
s =
'%05d' % n
-
print s
-
>>>
-
'00123'