1.file_os_option.py
2.file_option.py
3.configfile_option.py
4.logger_option.py

1.file_os_option.py

 # coding=utf8
 __author__ = 'SummerChill'
 """
 需求:
 1.在D盘创建两个目录D:\\pythontest1 D:\\pythontest2
 2.在pythontest1目录中创建两个文件hello.log1和hello.log2
 3.将pythontest1中的hello.log1修改为hello.log11;
 4.查看pythontest1目录里的文件.
 5.首先删除pythontest1的hello.log11,然后删除这两个目录.
 """
 import  os,os.path,shutil
 #判断文件夹是否存在
 if not os.path.isdir("D:\\pythontest1"):
     os.mkdir("D:\\pythontest1")
 if not os.path.isdir("D:\\pythontest2"):
     os.mkdir("D:\\pythontest2")

 os.chdir("D:\\pythontest1")#相当于cd D:\\pythontest1
 if not os.path.isfile("hello.log1"):
     open("hello.log1","w").close()# r只读,w可写,a追加
 if not os.path.isfile("hello.log2"):
     open("hello.log2","w").close()

 if os.path.isfile("hello.log11"):
     os.remove("hello.log11")
 os.rename("hello.log1","hello.log11")
 #查看D:\\pythontest1的文件信息
 print(os.listdir("D:\\pythontest1"))#['hello.log11', 'hello.log2']

 #获取各种属性

 #删除目录
 os.remove("hello.log11")
 #os.removedirs("D:\\pythontest1")#removedirs删除的时候要求文件夹中必须没有任何文件才能够执行.
 os.chdir("D:\\")#改变所在的目录....为了避免在一个目录中要删除这个目录
 shutil.rmtree("D:\\pythontest1")#
 os.removedirs("D:\\pythontest2")

2.file_option.py

 # coding=utf8
 __author__ = 'SummerChill'

 path="D:\\data.txt"
 #读取文件
 f=open(path,"r")
 #读取全部
 # print(f.read())#hhahahahahaha哈哈哈哈

 #读取为一个列表然后一行一行读取
 # print(f.readlines())#如果文件中有多行的话,会在最后打印出"\n"
 #可以是用strip()方法删除每行前后对应空白字符.
 # for line in f.readlines():# 这种f.readlines()是把文件全部都读出来变成一个列表放在内存中
 #     print(line.strip()+"***")#这样打印出的内容不会包括"\n"

 #大文件推荐使用如下读取方式
 # for line in f:
 #     print(line.strip()+"***")

 #覆盖
 # f=open(path,"w")# r只读,w可写,a追加
 # f.write("覆盖了一个")
 # f.close()

 # #追加
 # f=open(path,"a")# r只读,w可写,a追加
 # f.write("\n追加了一个")
 # f.close()
 #File not open for reading

 # r+:以读写模式打开 部分替换     和r的区别是可以写
 # w+:以读写模式打开 参见w 全替换  和w的区别是可以读
 # a+:以读写模式打开 参见a 追加    和a的区别是可以读

 # f=open(path,"r+")
 # f.write("最新")
 # f.flush()
 # #移动游标
 # f.seek(0)
 # print(f.read())
 # f.close()

 # f=open(path,"a+")
 # f.write("追加")
 # f.flush()
 # #移动游标
 # f.seek(0)
 # print(f.read())
 # f.close()

 f=open(path,"w+")
 f.write("覆盖了")
 f.flush()
 #移动游标
 f.seek(0)
 print(f.read())
 f.close()

3.configfile_option.py

 # coding=utf8
 __author__ = 'SummerChill'
 """
 Svn 的配置文件
 [user]
 SummerChill = 4433
 cc = 11

 [pwd]
 tt = 22
 """
 import  ConfigParser
 cf=ConfigParser.ConfigParser()
 path="D:\\passwd"
 #将文件转成对象
 cf.read(path)

 if not cf.has_section("user"):
     cf.add_section("user")
 if not cf.has_section("pwd"):
     cf.add_section("pwd")
 print(cf.sections())

 #在user的节点中创建SummerChill=4433
 #如果不存在则新增,如果存在则覆盖
 cf.set(")
 cf.set(")
 cf.set(")

 print(cf.options("user"))
 #查询指定的节点的值
 print(cf.getint("user","SummerChill"))
 print(cf.get("user","cc"))

 cf.remove_option("user","cc")
 cf.remove_section("pwd")
 cf.remove_section("user")

 #将cf对象写入文件
 cf.write(open(path,"w"))

4.logger_option.py

 # coding=utf8
 __author__ = 'SummerChill'

 import  logging,sys,logging.handlers,time
 #默认情况下python的logging模块默认使用StreamHandler,默认的日志级别设置为WARNING,即往sys.stderr中发送大于等于WARNING级别的日志。
 logging.info("info")
 logging.warn("warn")
 logging.debug("debug")

 #初始化logger
 logger=logging.getLogger("mylogger")
 logger.setLevel(logging.INFO)
 #创建一个handler StreamHandler(stream=None):向一个sys.stdout或者sys.stderr中写入 默认是错误输出.
 sh=logging.StreamHandler(stream=sys.stdout)
 #打印到指定的文件中
 sh=logging.FileHandler("D:\\accesslog","a")

 #切分的条件backupCount>0 并且达到maxBytes。
 sh=logging.handlers.RotatingFileHandler("D:\\log\\accesslog","a",maxBytes=10,backupCount=5)
 sh=logging.handlers.TimedRotatingFileHandler("D:\\log\\accesslog",when='S',interval=5)
 sh=logging.handlers.TimedRotatingFileHandler("D:\\log\\accesslog",when='midnight')
 #创建一个formater 并将handler 和此format关联
 format=logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
 sh.setFormatter(format)

 logger.addHandler(sh)

 logger.info("info")
 logger.warn("warn")
 logger.debug("debug")

python使用(四)的更多相关文章

  1. 简学Python第四章__装饰器、迭代器、列表生成式

    Python第四章__装饰器.迭代器 欢迎加入Linux_Python学习群  群号:478616847 目录: 列表生成式 生成器 迭代器 单层装饰器(无参) 多层装饰器(有参) 冒泡算法 代码开发 ...

  2. Python 基础 四 面向对象杂谈

    Python 基础  四  面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...

  3. 初学Python(四)——set

    初学Python(四)——set 初学Python,主要整理一些学习到的知识点,这次是set. # -*- coding:utf-8 -*- #先来看数组和set的差别 d=[1,1,2,3,4,5] ...

  4. python 函数“四剑客”的使用和介绍

    python函数四剑客:lambda.map.filter和reduce. 一.lambda(匿名函数) 1. 学习lambda要注意一下几点: lambda语句被用来创建新的函数对象,并且在运行的时 ...

  5. Python第四天 流程控制 if else条件判断 for循环 while循环

    Python第四天   流程控制   if else条件判断   for循环 while循环 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Python第二天 ...

  6. 初识Python(四)

    一.数字数据类型 Python的数字数据类型用于存储数值,它是不可变的数据类型,这意味着改变数字数据类型,则需要一个新分配的对象: Python支持四种不同的数值类型: 整型(Int):通常被称为是整 ...

  7. 孤荷凌寒自学python第四十九天继续研究跨不同类型数据库的通用数据表操作函数

    孤荷凌寒自学python第四十九天继续研究跨不同类型数据库的通用数据表操作函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 不同类型 ...

  8. 孤荷凌寒自学python第四十八天通用同一数据库中复制数据表函数最终完成

    孤荷凌寒自学python第四十八天通用同一数据库中复制数据表函数最终完成 (完整学习过程屏幕记录视频地址在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 今天经过反复折腾,最终基本上算 ...

  9. 孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数

    孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数 (完整学习过程屏幕记录视频地址在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 今天打算完成的是通用的(至少目 ...

  10. 孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类尝试第一天

     孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类,尝试第一天 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 按上一天的规划,这是根据过去我自学其它编程语 ...

随机推荐

  1. error C4430: error 2141

    c:\evan\workspace\1\1\netwowkippack.h(50) : error C2146: 语法错误 : 缺少“;”(在标识符“nSourPort”的前面) c:\evan\wo ...

  2. Linux查看登录到服务的用户,查看用户的操作已经剔掉干坏事的用户的命令

    在工作中,我们有时候会经常的切换用户,有时候会忘记切换到哪个用户了,我们就需要知道当前登录的用户时谁,可以使用: whoami 查看当前登录到系统中的用户有哪些: who 列表中显示,第一列是用户名, ...

  3. 构造函数的prototype和constructor属性

    Car.prototype = { name:'BMW', height:1400, long:4900 } function Car(color,owner){ this.color = color ...

  4. CVO实现过程

    module vid_cvo #( , , , , , )( input clk, input rst_p, :] idata, input ivalid, input vid_sop, input ...

  5. AngularJS实战之Controller之间的通信

    我们时常会在不同controller之间进行通信,接下来就介绍三种controller之间的通信方式 一.使用$on.$emit和$broadcast进行controller通信 虽然AngularJ ...

  6. Ubuntu下配置PHP和CakePHP记录

    目前在完成一个PayPal的支付页面,需要有PHP的开发环境,同时,在开发时使用了CakePHP的框架,于是就有了下面的情景. 操作环境: OS:ubuntu-14.04.2-desktop-amd6 ...

  7. 延时、输入输出接口P0~P3

    1.寄存器 为了知道延时程序是如何工作的,我们必需首先了解延时程序中出现的一些符号,就从R1开始,R1被称之为工作寄存器.什么是工作寄存器呢?让我们从现实生活中来找找答案.如果出一道数学题:123+5 ...

  8. android 增量更新原理

    原理如下:服务器端设计增量表,记录数据操作顺序id,和增删改查信息.在进行数据库表操作的时候同时进行将信息保存在增量表. android客户端在请求的时候上传最后保存的id.服务端判断最后的id,返回 ...

  9. hdu 1130 How Many Trees? 【卡特兰数】

    题目 题意:给你一个数字n,问你将1~n这n个数字,可以组成多少棵不同的二叉搜索树. 1,2,5,14--根据输出中的规律可以看出这是一个卡特兰数的序列.于是代用卡特兰数中的一个递推式: 因为输入可取 ...

  10. browsersync

    以后不需要F5了 之前实现自动刷新,是通过livereload,它需要插件比较麻烦:现在改为browsersync. BrowserSync,迅捷从免F5开始 完整选项 不止是自动刷新:默认就有 UI ...