190715 Python 内置函数之ascii

ascii() 函数类似 repr() 函数, 返回一个表示对象的字符串, 但是对于字符串中的非 ASCII 字符则返回通过 repr() 函数使用 \x, \u 或 \U 编码的字符

举例如下:

1
2
>>> ascii('你好hello')
"'\\u4f60\\u597dhello'"

190715 Python 内置函数之any

any与all作用比较像,区别在于只要有一个为true,则返回True

1
2
3
4
>>> any([0, '', False])
False
>>> any([1, '', False])
True

190715 Python 内置函数之all

all判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False

等价于:

1
2
3
4
5
def all(iterable):
for element in iterable:
if not element:
return False
return True

实例:

1
all(['a', 'b', 'c', 'd'])

190715 Python 内置函数之abs

接下来我们将针对python的内置函数进行逐一说明,本文将介绍abs() – 返回数字的绝对值

1
abs(-10)

请注意:如果参数是一个复数,则返回它的大小

1
2
>>> abs(complex(-10, 1))
10.04987562112089

190711-Python json格式化输出

使用python来加载or输出json对象属于很方便的操作了,因为官方库中直接集成了对应的操作库,之前说过一篇《Python之json无法序列化部分类型数据问题解决方案》,这里介绍一下另外的一些用法,如何输出格式化的json字符串

190710 Python json使用基础篇

json字符串目前可以算是前后端的主流交互格式了,在python中,原生支持json的序列化和反序列化,使用起来比较简单

1
2
3
4
5
6
7
8
import json

a = {'a': [1,2,3], 'b': {'t': 'tt', 'b': 123}}
# 转换为json字符串
b = json.dumps(a)

# json字符串转换为map
c = json.loads(b)

190704-mysql索引过长Specialed key was too long问题记录

在创建要给表的时候遇到一个有意思的问题,提示Specified key was too long; max key length is 767 bytes,从描述上来看,是Key太长,超过了指定的 767字节限制

190703-docker非root用户可使用配置

docker要求使用root权限进行启动,但是启动之后,普通的账号会发现没有访问docker的权限,然而每次都使用root进行访问过于麻烦,那么有办法让普通账号也能正常访问么?

190702 Python 文件所属修改

os.chown() 方法用于更改文件所有者,如果不修改可以设置为 -1, 你需要超级用户权限来执行权限修改操作

1
os.chown(path, uid, gid);

参数:

  • path – 设置权限的文件路径
  • uid – 所属用户 ID
  • gid – 所属用户组 ID

190702 Python 文件权限修改

os提供了chmod来修改文件权限,基本上和shell命令操作差不多了

1
os.chmod(path, mod)

flags – 可用以下选项按位或操作生成, 目录的读权限表示可以获取目录里文件名列表, ,执行权限表示可以把工作目录切换到此目录 ,删除添加目录里的文件必须同时有写和执行权限 ,文件权限以用户id->组id->其它顺序检验,最先匹配的允许或禁止权限被应用。

  • stat.S_IXOTH: 其他用户有执行权0o001
  • stat.S_IWOTH: 其他用户有写权限0o002
  • stat.S_IROTH: 其他用户有读权限0o004
  • stat.S_IRWXO: 其他用户有全部权限(权限掩码)0o007
  • stat.S_IXGRP: 组用户有执行权限0o010
  • stat.S_IWGRP: 组用户有写权限0o020
  • stat.S_IRGRP: 组用户有读权限0o040
  • stat.S_IRWXG: 组用户有全部权限(权限掩码)0o070
  • stat.S_IXUSR: 拥有者具有执行权限0o100
  • stat.S_IWUSR: 拥有者具有写权限0o200
  • stat.S_IRUSR: 拥有者具有读权限0o400
  • stat.S_IRWXU: 拥有者有全部权限(权限掩码)0o700
  • stat.S_ISVTX: 目录里文件目录只有拥有者才可删除更改0o1000
  • stat.S_ISGID: 执行此文件其进程有效组为文件所在组0o2000
  • stat.S_ISUID: 执行此文件其进程有效用户为文件所有者0o4000
  • stat.S_IREAD: windows下设为只读
  • stat.S_IWRITE: windows下取消只读

190702 Python 文件权限

在linux系统中,文件的越权访问相对常见,比如普通用户无法访问root用户文件,在python中,可以借助os.access()来判断

1
os.access(path, mode);
  • path: 待检测的路径
  • mode:
    • os.F_OK: 作为access()的mode参数,测试path是否存在。
    • os.R_OK: 包含在access()的mode参数中 , 测试path是否可读。
    • os.W_OK 包含在access()的mode参数中 , 测试path是否可写。
    • os.X_OK 包含在access()的mode参数中 ,测试path是否可执行。

190701 Python 更改工作目录

在用python调用shell脚本时,可以用到功能当前工作目录

1
os.chdir(path)

实例如下

1
2
3
4
5
6
7
8
9
>>> import os
>>> retval = os.getcwd()
>>> print ("当前工作目录为 %s" % retval)
当前工作目录为 /Users/user
>>> os.chdir( '/tmp' )
>>> os.getcwd()
'/private/tmp'
>>> os.getcwd()
'/private/tmp'

190630 Python目录压缩

上一篇介绍了shutil实现文件移动的功能,接下来介绍使用它来实现目录压缩

一个简单的实例case,将/tmp/test目录打包压缩为out.zip

1
2
import shutil
shutil.make_archive("out", "zip", "/tmp/test")

190629 Python目录迁移

在shell里面,直接使用mv命令实现目录文件的移动,那么python中可以怎么做呢?

1
2
3
4
5
6
7
8
9
10
import shutil

def move_dir(source, target):
"""
目录迁移
:param source:
:param target:
:return:
"""
shutil.move(source, target)

190628 Python目录创建

当我们写入数据到一个文件时,假设这个文件所在的某个目录不存在,那么会抛异常,所以我们就需要在目录不存在时创建目录,这个场景比较常见,可以直接借助os来实现

1
2
3
4
5
6
7
8
9
10
import os

def create_dir(path):
"""
目录不存在时,主动创建
:param path:
:return:
"""
if not os.path.exists(path):
os.makedirs(path)

190627 Python文件遍历

如何遍历一个目录下的所有文件?

1
2
3
4
5
6
7
8
9
10
import os

def list_dir(path):
"""
获取目录下所有文件
:param path:
:return:
"""
for file in os.listdir(path):
print(file)

190626 Python文件写

如何将内容保存到文件中?

借助with语句可以简单的实现

1
2
3
4
with open('demo.txt', 'w+') as f:
f.write("hello")
f.write("world")
f.flush()

请注意,上面的write表示一次写入,如果你希望一次写入多个数据,可以使用 writeline

1
2
3
with open('demo.txt', 'w+') as f:
f.writelines(["12", "34"])
f.flush()

190625-Python 文件读取

文件按行读取的两种方式

case1:

1
2
for line in iopen('demo.txt', 'r+'):
print(f)

case2:

1
2
3
with open('demo.txt', 'r+') as f:
for line in f.readlines():
print(line)

190624-python 获取文件大小

记录下在python中获取文件大小的使用方法

1
2
3
4
import os

size = os.path.getsize('/tmp/img/tmp.jpg')
print(size)

输出文件的字节数,单位为B,int型

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×