打開文件: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()