python最常用的语句_Python常用语句

遍历文件

方式一

from os import listdir

from os.path import isfile, join

onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]

方式二

from os import walk

f = []

for (dirpath, dirnames, filenames) in walk(mypath):

f.extend(filenames)

break

以文件的保存的编码打开文件

有时候在打开文件的时候,不知道文件的编码。这个时候就需要先探测到文件的编码,然后再以探测到的文件编码打开。但是在Python中并没有相关的包可以用来获取文件的编码,可以借助于第三方的库chardet

安装chardet

pip install chardet

打开文件

with open(filpath,'rb') as file:

rawdata = file.read()

result = chardet.detect(rawdata)

charenc = result['encoding']

content = rawdata.decode(charenc,'ignore')

更新pip

更新pip3

pip3 install --upgrade pip

更新pip2

pip2 install --upgrade pip

得到所有的字符

很多时候需要使用Python得到所有字符,包括特殊字符。

import string

string.printable

最后的结果为

0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;?@[\\]^_`{|}~ \t\n\r\x0b\x0c

连续数字

有时候需要生成等长的数字序列,如001,002一直到100

使用常规的range只能生成普通的1,2,3这样的字符串。

可以使用zfill()函数来完成

num = [str(i) for i in range(100)]

new_nums = []

for i in num:

i = i.zfill(3)

new_nums.append(i)

print(new_nums)

其中的zfill(3)就是表示需要生成三位数的数字

最后的结果就是:

868176-20170427142712897-2063414118.png

将dict以json格式保存

import json

with open('result.json', 'w') as fp:

json.dump(sample, fp)

Flatten (an irregular) list of lists

不知道如何翻译成为中文,但是看代码示例就应该知道了。

简单的方式(规则的list)

import itertools

list2d = [[1, 2, 3], [4, 5, 6], [7], [8, 9,],[12,]]

merged = list(itertools.chain.from_iterable(list2d))

print(merged)

#output:[1, 2, 3, 4, 5, 6, 7, 8, 9, 12]

可以看到list2d是一个二级list,如果出现3级list,那么上述的方法就会失败。

import itertools

list2d = [[1, 2, 3,[11,12,13]],[4,5,6,[14,15,16]]]

merged = list(itertools.chain.from_iterable(list2d))

print(merged)

#output:[1, 2, 3, [11, 12, 13], 4, 5, 6, [14, 15, 16]]

说明使用itertools.chain.from_iterable只能解压两层

递归的方式

面对不同形式的list,最好的方式是使用递归来解决。

def flatten(x):

import collections

if isinstance(x, collections.Iterable):

return [a for i in x for a in flatten(i)]

else:

return [x]

def get_flattern_List():

list2d = [[1, 2, 3], [4, 5, 6], [7], [8, 9, [10, 11,[12,13]]]]

result = flatten(list2d)

print(result)

#output:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

使用递归的方式,可以解决不规则的list的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值