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. 第15章:MongoDB-聚合操作--聚合管道--$match

    ①$match 用于对文档集合进行筛选,里面可以使用所有常规的查询操作符. 通常会放置在管道最前面的位置,理由如下: 1:快速将不需要的文档过滤,减少后续操作的数据量 2:在投影和分组之前做筛选,查询 ...

  2. idea常用插件介绍

    常用插件 mybatis mapper 选择plugins,搜索mybatis plugin 激活教程 使用 插件的使用

  3. 给Java开发者的Scala教程

    author:Michel Schinz,Philipp Haller 1. 简介 本文将该要的介绍Scala语言和其编译.这里假设读者已经有一定的java开发经验,需要概要的了解他们可以用Scala ...

  4. 20169207《Linux内核原理及分析》第十二周作业

    本周选做的信息安全实验为Python实现Zip文件的暴力破解 实验预备: 这次实验我们需要用到的库为zipfile.下来我们先来了解一下这个模块. 首先我们的重点是对zip文件的操作,而zipfile ...

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

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

  6. Strom开发配置手册

    一:Storm集群搭建 1.本次开发使用的是storm0.9.3 2.Storm0.9.3集群搭建: 1)storm集群角色包含集群主节点Nimbus:集群从节点Supervisor 2)集群安装:先 ...

  7. 2.Handler处理器 和 自定义Opener

    Handler处理器 和 自定义Opener opener是 urllib2.OpenerDirector 的实例,我们之前一直都在使用的urlopen,它是一个特殊的opener(也就是模块帮我们构 ...

  8. Android-Kotlin-印章类

    上一篇博客介绍了,Android-Kotlin-枚举enum: 由于枚举 和 印章类 有相似之处,所以两者对比一下: Kotlin的枚举,重点区分的数据本身 Kotlin的印章类,重点区分的是数据类型 ...

  9. Spring Security ——AuthenticationProvider

    AuthenticationProvider 目录 1.1     用户信息从数据库获取 1.1.1    使用jdbc-user-service获取 1.1.2    直接使用JdbcDaoImpl ...

  10. Windwos下Tomcat的安装与配置

    一.准备工作 1. JDK环境,可参考https://www.cnblogs.com/eagle6688/p/7873477.html 2. Eclipse 3. Tomcat安装包和源码包 二.下载 ...