zoukankan      html  css  js  c++  java
  • Python基础练习

    近日,因工作需要要学习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("逐行处理
    ")
    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("
    csv处理")
    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"
    改变分隔符"
    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("
     改变分隔符简单版本")
    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("
     将数据读取出来然后存储到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 + '
    '
    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) + '
    ' #输出文件路径信息
    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
    '%(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.jb51.net/article/65792.htm   Python遍历指定文件及文件夹的方法

                  http://coolshell.cn/articles/4990.html 程序员技术练级攻略

  • 相关阅读:
    java09-8大基本类型的包装类、装箱拆箱
    java08-枚举
    类加载-双亲委托机制
    java虚拟机05-虚拟机加载类机制&类加载器
    java虚拟机04-内存分配与回收策略
    java-07 内部类、匿名内部类、局部内部类、lambda
    从0开始的Python学习012数据结构&对象与类
    从0开始的Python学习011模块
    从0开始的Python学习010return语句&DocStrings
    从0开始的Python学习009参数
  • 原文地址:https://www.cnblogs.com/xerrard/p/4961513.html
Copyright © 2011-2022 走看看