打开文件:python
open方式:服务器
r:以只读方式打开,文件不存在会报错函数
w:以写方式打开,文件不存在会建立,文件存在会被覆盖spa
a:以追加模式打开,文件存在会在文件最后追加,文件不存在会建立指针
r+:以读写模式打开对象
w+:以读写模式打开(参见w)内存
a+:以读写模式打开(参见a)字符串
rb:以二进制写模式打开string
wb:以二进制写模式打开(参见w)it
ab:以二进制追加模式打开(参见a)
rb+:以二进制读写模式打开(参见r+)
wb+:以二进制读写模式打开(参见w+)
ab+:以二进制读写模式打开(参见a+)
1. 默认以r方式打开
2. 以其余方式打开
3. fd = open('/root/file') 用内置函数open打开文件
fd.close() 使用open内置函数打开后,使用fd.close()关闭;
读取内容时指针会指向相应的位置,读完显示空字符串;
fd.read() 读取所有内容,从头至尾;返回的是字符串;
fd.read(2) 读取两位;
fd.readline() 每运行一次读取一行;指针到最后返回空字符串;
fd.readlines() 以列表形式读取
fd.next() 运行一次显示一行
4. fd = open('/root/file', 'w') 以w方式打开文件
只接受字符串,不支持数值;
文件内容会被覆盖;
写入完成后执行fd.close();
5. fd = open('/root/file', 'a') 以a方式打开文件
6. 脚本示例:
#!/usr/bin/python
fd = open('/root/file')
for line in fd.readlines():
print line,
注:文件里自己有换行符,line后面加上逗号抑制print的换行符,否则会出现空行;
当文件很大时fd.readlines会占用很大内存,因此建议使用下面脚本:
#!/usr/bin/python
fd = open('/root/file')
for line in fd:
print line,
注:for line in fd: 中fd是对象,循环时是遍历一遍取一次数据,不占用内存;
1. while循环使用open遍历文件
#!/usr/bin/python
fd = open('/root/file')
while True:
x = fd.readline()
if not x:
break
print x,
fd.close()
注:循环遍历文件时结束时尽可能fd.close()关闭文件;
2. while 中使用with open遍历文件
不须要close了;
格式:with open() as xxx:
#! /usr/bin/python
with open('/root/file') as fd:
while 1:
line = fd.readline()
if not line:
break
print line,
1. 查看系统剩余内存
free 命令
cat /proc/meminfo
2. 字符串的startswith()方法:
判断是否有以指定字符串开头的行;
返回的是bool值,true或false;
3. 字符串的split()方法:
以空格或则tab键分割,并在输出为列表;
4. 统计系统剩余内存,以及使用百分比:
#! /usr/bin/python
with open('/proc/meminfo') as fd:
for line in fd:
if line.startswith('MemTotal'):
total = line.split()[1]
continue
if line.startswith('MemFree'):
free = line.split()[1]
break
persent = '%.2f' % ((float(free)/float(total))*100)+'%'
print 'free:'+ '%.2f' % (int(free)/1024.0)+'M'
print 'free%:'+ persent
注:
float()转换成浮点型
‘%.2f是字符串格式化并保留小数点后两位
1. 十六进制字符串转为十进制
2. 十进制转成十六进制
hex(10)
3. 十进制转换字符串
4. 字符串转成数字
5. python计算一个mac地址的下个地址
一般服务器里有多个网卡的话,网卡的mac地址基本都是挨着的。
#! /usr/bin/env
mac = '52:54:00:0c:9f:0a'
last_two = mac[-2:]
front_mac = mac[:-2]
plus_one = int(last_two ,16) + 1
if plus_one in range(10):
new_last_two = '0' + hex(plus_one)[2:]
elif len(hex(plus_one)[2:]) == 1:
new_last_two = '0' + hex(plus_one)[2:]
next_mac = front_mac + new_last_two
print next_mac
1. 字符串转列表
list[string]
2. 列表转字符串
‘’.join(list)
3. 字符串转元组
tuple(string)
4. 元组转字符串
''.join(tuple)
‘s’.join(): s 表示用什么分割字符串
5. 列表与元组互相转换
6. 字典转换成列表
字典的items()方法
7. 列表转为字典
dict()