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. Mybatis在oracle数据库中插入数据后返回自增值ID

    1.将id设置成自增序列 CREATE OR REPLACE TRIGGER "DATALIB"."TRIG_USER_ADD" BEFORE INSERT O ...

  2. oracle数据库的迁移(从一台服务器到另一个台服务器,从oracle 10g到oracle 11g)

    这个过程呢,还是蛮艰难的.... 一.最初我使用的是Navicat中的数据传输来迁移的,虽说整个数据库的迁移没有成功,但传输指定的对象时还是传输成功了.所以还是记录一下吧. 1.前提连接好数据库.在指 ...

  3. fPLL结构及动态配置

    输入参考时钟 从上图可以看到参考时钟输入的几种类型.   注意:fPLL的校正是由CLKUSR来驱动的,这个时钟必须要保持稳定. 参考时钟利用器     N计数器 N计数器会把参考时钟利用器输出进行分 ...

  4. 19) maven 项目结构:聚集

    Project Aggregation [,æɡrɪ'ɡeɪʃən] https://maven.apache.org/guides/introduction/introduction-to-the- ...

  5. C++函数的传值调用&指针调用&引用调用

    目录 传值调用 指针调用 引用调用 传值调用 该方法把参数的实际值复制给函数的形式参数.在这种情况下,修改函数内的形式参数对实际参数没有影响. #include<iostream> usi ...

  6. JSON 全解

    和js对象的区别 json只是一种数据格式,不支持undefined,字符串必须使用双引号,需要对/进行转义/. js属性名可不加"" json属性名必须加"" ...

  7. Swift3 使用系统UIAlertView方法做吐司效果

    /** *显示弹出信息 */ class func showAlertMessage(_ str:String,showtime Num:Double){ let alert = UIAlertVie ...

  8. 测试pc大、小端

    判断计算机的大.小端存储方式 1 int main() { ; char* p=(char*)&a; ) printf("little\n");//小端存储:高位存在地地址 ...

  9. win10专业版激活工具很不错!

    下载链接:   http://www.yishimei.cn/?=0xj20

  10. rsync+sersync+inotify实现服务器间文件同步之一

    rsync+sersync+inotify实现服务器间文件同步之一:rsync安装配置 2013年12月14日 ⁄ Linux管理, 服务器集群技术 ⁄ 共 4925字 ⁄ rsync+sersync ...