for循环遍历文件
- open
访问文件对文件描述符遍历,它是一个对象。小文件可以通过read访问。
open(’/tmp/filename’,‘a’) append方式打开文件,默认用读的方式。
fd = open(’/tmp/filename’)
fd.write(‘456’) 追加内容
fd.close()
type(fd)
fd.readline() 读一行。
fd.readlines() 有多少行读多少行。返回一个list
fd.read() 从起始位置读到末尾
fd.read(2) 读两个字符
#!/usr/bin/python
fd = open('/root/test.txt')
for line in fd.readlines(): #返回列表元素有/n,文件大时,会占用内存一般都写成fd
print line, #print默认有/n
fd.close() #不关闭,程序退出后也会退出
- with open
不需要close,在同一个缩进里结束后自动退出。
#!/usr/bin/python
with open('/root/test.txt') as fd:
while True:
line = fd.readline()
if not line:
break
print line,
while遍历文件
#!/usr/bin/python
fd = open('/root/test.txt')
while True:
line = fd.readline()
if not line:
break
print line,
fd.close()
统计系统剩余内存
s1.startswith(‘a’) 判断是不是以a开头的
s1.split() 默认按空格切分成列表
#!/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
print "%.2f" % (int(free)/1024.0)+'M'
数据类型转换(计算mac地址)
-
十六进制字符串转十进制
int(‘a’,16) a是16进制字符串
int(‘0xa’, 16) 0x是16进制前缀
hex(10) 十进制转换成16进制 -
十进制转换成字符串
str(‘123’)
#!/usr/bin/env python
macaddr = '00:0c:29:D1:6F:E9'
prefix_mac = macaddr[:-3]
last_two = macaddr[-2:]
plus_one = int (last_two, 16) +1
new_last_two = hex(plus_one)[2:]
print new_last_two[2:]
new_mac = prefix_mac + ':' + new_last_two
print new_mac.upper()
数据类型转换(列表与字典相互转换)
s = ‘abc’
l = list(s) 将s元素转换成列表
’‘.join(l) 默认空不分割
t = tuple(s) 字符串转换成元组
‘’.join(t)
ll = dic.items() 字典转换成列表,列表里每个元素又变成一个元组
dict(ll) 列表转换成字典
不是所有列表元组都能转成字典,只有列表里元素是列表或者是元组,而且小的列表由两个元素组成