Learning Python

Learning in Python

Python 操作文件及目录

一、python 文件操作

1.import glob 目录操作

查看目录内容:
filelist=glob.glob(‘*.*’)
filelist=glob.glob(‘c:\*’)
查看指定类型的文件:
filelist=glob.glob(‘c:\*.sys’)
为了显示一个目录中的全部文件,可以使用如下所示的os.listdir函数:


  files = os.listdir(r’C:\hpl\scripting\src\py\intro’) #适用于 Windows
  files = os.listdir(’/home/hpl/scripting/src/py/intro’) # 适用于Unix
    files = os.listdir("d:\python26")
    files=os.listdir("c:\\")
# 跨平台版本:
  files = os.listdir(os.path.join(os.environ[’scripting’],
  ’src’, ’py’, ’intro’))
  files = os.listdir(os.curdir) # 当前目录中的所有文件
  files = glob.glob(’*’) + glob.glob(’.*’)

二、测试文件类型

Read More »

python-SocketServer-基本使用


#!/usr/bin/env python
from SocketServer import (TCPServer as TCP,StreamRequestHandler as SRH)
from time import ctime

HOST = ”
PORT = 36899
ADDR=(HOST,PORT)

class MyRequestHandler(SRH):
    def handle(self):
        print ‘….connected from ‘,self.client_address
        self.wfile.write(‘[%s] %s ‘% (ctime(),self.rfile.readline()))

tcpServ = TCP(ADDR,MyRequestHandler)
print ‘Serverice start\n,waitting for connection’
try :
    tcpServ.serve_forever()
except KeyboardInterrupt,e:
    print ‘bye’

Python聊天程序

Python 核心编程 书后答案

半双工聊天程序 16-7题

#!/usr/bin/env python
#chat server 半双工聊天程序,服务端
from socket import *

########################################################################
class chatS:
 """www.d-up.org   python爱好者"""

 #----------------------------------------------------------------------

 def __init__(self,port):
  """Constructor"""
  self.serSock = socket(AF_INET,SOCK_STREAM)
  self.serSock.bind(('',port))
  self.serSock.listen(1)

  print 'chat server start!!'

 def run(self):
  while 1:
   self.cliSock,(addr,port1) = self.serSock.accept()
   print '%s %s connected'% (addr,port1)
   print '-----------------------------------'
   while 1:

    ss = self.cliSock.recv(1024)
    if not ss:
     print '%s %s off line'% (addr,port1)
     break
    print '%s %s say: %s' % (addr,port1,ss)
    ss= raw_input('>')
    self.cliSock.send(ss)
   print '-----------------------------------'
   self.cliSock.close() 

chatSer = chatS(3557)
chatSer.run()

下面是客户端:


#!/usr/bin/python
from socket import *
import sys

if __name__=="__main__":
    port = int(sys.argv[1])
    host= '192.168.1.117'
    ADDR=(host,port)
    cliSock= socket(AF_INET,SOCK_STREAM)
    cliSock.connect(ADDR)
    print 'Connect ready!\n--------------------'
    while 1:
        ss = raw_input('>')
        if not ss:
            break
        cliSock.send(ss)
        ss=cliSock.recv(1024)
        if(ss == 'bye'):
            print 'server say bye'
            break
        print "%s  say: %s" %(host,ss)
        

Python-冒泡排序


#BubbleSort.py  used python3.1 or python 2.x
def bubble(str):
    tmplist = list(str)
    count = len(tmplist)
    for i in range(0,count-1):
        for j in range(0,count-1):
            if tmplist[j] > tmplist[j+1]:
                tmplist[j],tmplist[j+1] = tmplist[j+1],tmplist[j]
    return tmplist

#useage:
str = "zbac"
print(bubble(str))     # ['a', 'b', 'c', 'z']
number=[16,134,15,1]
print(bubble(number))  # [1, 15, 16, 134]

Python Socket 处理连接超时

#/usr/bin/python
#coding:gb2312
import socket,sys
import time
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
IP=socket.gethostbyname(socket.gethostname())
s.settimeout(30) #设置超时
s.bind((IP,1080))
print “等待数据中。。。。”
while 1:
    try:
        s.settimeout(30)
        d,a=s.recvfrom(8192)
        print %s%s发来数据 :%s%(a,time.ctime(),d)
    except socket.timeout:
        print “连接超时!”
s.close()
From - http://d-up.org/man/