近日,因工作需要要学习Python。为了不在语言细节中无法自拔,我按照网上广为流传的《程序员技术练级攻略》中python部分的学习计划,做了三个简单的练习,算是对python有了初步的了解。
1 __author__ = ‘xuqiang‘ 2 # -*- coding: UTF-8 -*- 3 import csv 4 import sys 5 6 #csv操作,文件格式不是重要的,最重要的是文件内容要符合格式,而不是文件扩展名 7 8 #利用open进行逐行处理 9 print("逐行处理\n") 10 for line in open("Sample.txt"): #取一行 11 title,year,director = line.split(",") 12 print(year,title) 13 14 for line in open("Sample.txt"): #取一行 15 title,year,director = line.split(",") 16 print(title,director) 17 18 #使用CSV进行逐行处理CSV格式的文件 19 print("\ncsv处理") 20 reader = csv.reader(open("Sample.txt")) 21 for title,year,director in reader: 22 print title,director 23 24 25 #使用CSV进行逐行处理修改了分隔府的CSV格式的文件 26 print"\n改变分隔符" 27 class SKV(csv.excel): 28 delimiter = ";" 29 csv.register_dialect("SKV", SKV) 30 reader = csv.reader(open("Sample.ddd"),"SKV") 31 for title,year,director in reader: 32 print year,title 33 34 print("\n 改变分隔符简单版本") 35 reader = csv.reader(open("Sample.ddd"),delimiter=";") 36 for title,year,director in reader: 37 print year,title 38 39 40 41 #使用CSV将数据写入到CSV格式的文件中 42 print("\n 将数据读取出来然后存储到CSV格式的文件中") 43 reader = csv.reader(open("Sample.ddd"),delimiter=";") 44 data = [] 45 for title,year,director in reader: 46 tup = (title,year,director) #先存到元组 47 data.append(tup) #再将元组存储到列表 48 49 newfile = open(‘outCsv.csv‘,‘w‘) #一个新文件 50 sys.stdout = newfile #sys.stdout原本是控制台,我们重定向到newfile上 51 writer = csv.writer(sys.stdout) 52 53 for item in data: #列表的迭代 54 writer.writerow(item) #一行一行的写入
1 __author__ = ‘xuqiang‘ 2 # -*- coding: UTF-8 -*- 3 4 import os 5 import os.path 6 import time 7 import operator 8 9 rootdir = "/home/xuqiang/newfiles" 10 11 12 #一、使用os.walk进行文件夹遍历,直接输出遍历结果 13 14 #os.walk会递归遍历整个文件夹 该方法对于每个目录返回一个三元组,(dirpath, dirnames, filenames) 15 #parent:dirnames 一般就一个,当前的大文件夹名称 16 #dirnames: 此文件夹中所有的文件夹名称 17 #filenames: 此文件夹中所有的文件名称 18 for parent,dirnames,filenames in os.walk(rootdir): 19 for dirname in dirnames: 20 print "parent is :" + parent 21 print "dirname is :" + dirname + ‘\n‘ 22 23 24 for filename in filenames: 25 print "parent is :" + parent 26 print "filename is:"+ filename 27 print "the full name of the file is:" + os.path.join(parent,filename) + ‘\n‘ #输出文件路径信息 28 29 30 31 32 #二、使用os.path.walk进行文件夹遍历,将遍历结果写入文件中 33 34 #将文件属性中的时间改为‘2011-1-12 00:00:00格式‘ 35 def formattime(localtime): 36 endtime=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(localtime)) 37 return endtime 38 39 #searchdir是os.path.walk的回调函数,os.path.walk也会递归遍历文件夹 40 #dirname:路径 41 #names:文件列表(只有文件名) 42 def searchdir(arg,dirname,names): 43 for filespath in names: 44 fullpath=os.path.join(dirname,filespath) #路径名+文件名 = 文件绝对路径 45 statinfo=os.stat(fullpath) #文件属性 46 sizefile=statinfo.st_size #文件大小 47 creattime=formattime(statinfo.st_ctime) #创建时间 48 maketime=formattime(statinfo.st_mtime) #修改时间 49 readtime=formattime(statinfo.st_atime) #浏览时间 50 if os.path.isdir(fullpath): #判断是文件夹还是文件 51 filestat=‘DIR‘ 52 else: 53 filestat=‘FILE‘ 54 #把结果写入到test.txt中 55 open (‘test.txt‘,‘a‘).write(‘【%s】路径:%s 文件大小(B):%s 创建时间:%s 修改时间:%s 浏览时间:%s\r\n‘%(filestat,fullpath,sizefile,creattime,maketime,readtime)) 56 57 os.path.walk(rootdir,searchdir,()) 58 59 60 61 62 63 64 #三、利用os.list进行文件夹遍历,并对遍历结果按照不同要求进行排序 65 tuplist = [] 66 for i in os.listdir(rootdir): 67 fullpath = os.path.join(rootdir,i) 68 statinfo=os.stat(fullpath) #文件属性 69 sizefile=statinfo.st_size #文件大小 70 creattime=formattime(statinfo.st_ctime) #创建时间 71 if os.path.isfile(fullpath): 72 tup = {‘filename‘:i,‘filesize‘:sizefile,‘filetime‘:creattime} 73 tuplist.append(tup) 74 75 tuplist.sort(key=operator.itemgetter(‘filetime‘) ) #根据创建时间进行排序 76 print tuplist 77 tuplist.sort(key=operator.itemgetter(‘filesize‘) ) #根据文件大小进行排序 78 print tuplist 79 tuplist.sort(key=operator.itemgetter(‘filename‘) ) #根据文件名称进行排序 80 print tuplist
1 __author__ = ‘xuqiang‘ 2 import sqlite3 3 cx = sqlite3.connect("btopp.db") 4 cu=cx.cursor() 5 cu.execute("select * from btopp") 6 print cu.fetchall()
参考资料:http://www.jb51.net/article/65792.htm Python遍历指定文件及文件夹的方法
http://coolshell.cn/articles/4990.html 程序员技术练级攻略
原文:http://www.cnblogs.com/xerrard/p/4961513.html