python位址薄指令碼

2021-06-25 14:12:09 字數 2836 閱讀 9642

#filename:add_message.py

import os

import cpickle as cp

import sys

class persion:

totile=0

def __init__(self,name,age,address):

self.name=name

self.age=age

self.address=address

persion.totile=persion.totile+1

def show(self):

print 'name:%s,age:%d,address:%s'%(self.name,self.age,self.address)

class addr_message:

addr_message_file='addrmessage.data'

storedlist={}

def __init__(self):

if os.path.exists(addr_message.addr_message_file)==false:

addr_message.filehandle=open(addr_message.addr_message_file,'w')    #這裡用『w』,如果檔案不存在就會建立,如果存在就會清空(這是相對於open函式來說的)

addr_message.filehandle.close()                                     #如果這裡用的是『r』,這個檔案必須存在

else:

addr_message.filehandle=file(addr_message.addr_message_file)

filelen=addr_message.filehandle.read()

if len(filelen):

addr_message.filehandle.close()         #這裡要關閉的原因是前面在判斷檔案是否為空的時候讀了檔案,導致檔案指標移動了,我們應該從頭開始,當然不用這種方法也行

addr_message.filehandle=file(addr_message.addr_message_file)

addr_message.storedlist=cp.load(addr_message.filehandle)

addr_message.filehandle.close()

def __del__(self):

if os.path.exists(addr_message.addr_message_file):

addr_message.filehandle=file(addr_message.addr_message_file,'w')

cp.dump(addr_message.storedlist,addr_message.filehandle)

addr_message.filehandle.close()

def add_persion(self,persion):

if not addr_message.storedlist.has_key(persion.name):

addr_message.storedlist[persion.name]=[persion.name,persion.age,persion.address]

def delete_persion(self,name):

if addr_message.storedlist.has_key(name):

del addr_message.storedlist[name]

def show_allpersion(self):

for value in addr_message.storedlist:

print 'name:%s,age:%d,address:%s'%(addr_message.storedlist[value][0],addr_message.storedlist[value][1],addr_message.storedlist[value][2])

def main():

newmessage=addr_message()

while true:

inputs=raw_input("select you choice:a(add),d(delete),s(show),q(quit):")

if inputs=='a' or inputs=='a':

name=raw_input("enter name:")

try:

age=int(raw_input("enter age:"))

except:

print 'unknow age'

age=0

address=raw_input("enter address:")            

newpersion=persion(name,age,address)

newmessage.add_persion(newpersion)

print 'add persion done'

elif inputs=='d' or inputs=='d':

name=raw_input("enter name:")

newmessage.delete_persion(name)

elif inputs=='s' or inputs=='a':

newmessage.show_allpersion()

elif inputs=='q' or inputs=='a':

del newmessage

break;

else:

print 'unknow input'

main()

python 指令碼之 IP位址探測

第一種方法 usr bin env python coding utf8 該指令碼需要使用fping命令 如果沒有安裝需要提前安裝fping yum install fping import os ip 10.10.0.1 24 ips 10.10.0.1 24 192.16.17.27 24 需要...

全球位址薄在郵件系統中的應用

企業的郵件系統管理是很複雜的,不僅僅是其設計搭建,更多的是執行維護,那麼我們在實際工作當中遇到最多的是 全球位址薄 的問題,這個 全球位址薄 不光有使用者的 更重要的是有使用者的屬性資訊,郵件系統是根據使用者的屬性來決定郵件的投遞。換言之,全球位址薄 是郵件系統日常運維的重點,我們對其更新是要嚴格控...

批量解析網域名稱為IP位址的python指令碼

指令碼如下 usr bin env python coding utf 8 import os,sys from socket import gethostbyname domain g pycharmproject fullstack2 week1 domain.txt def main doma...