设为首页 收藏本站
查看: 654|回复: 0

[经验分享] Python基础练习

[复制链接]
累计签到:10 天
连续签到:1 天
发表于 2015-11-30 13:29:32 | 显示全部楼层 |阅读模式
  近日,因工作需要要学习Python。为了不在语言细节中无法自拔,我按照网上广为流传的《程序员技术练级攻略》中python部分的学习计划,做了三个简单的练习,算是对python有了初步的了解。


1.使用open/csv进行文件读写操作。




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)     #一行一行的写入
  

2.文件系统的遍历 ,并将遍历结果进行排序



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
  

3.sqlite数据库操作,做了个简单的select操作。



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.iyunv.net/article/65792.htm   Python遍历指定文件及文件夹的方法
  http://coolshell.cn/articles/4990.html 程序员技术练级攻略
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-145404-1-1.html 上篇帖子: 记录Python处理文件因文件流没有关闭而出现的诡异问题 下篇帖子: python操作mongodb数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表