python使用(四)
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使用(四)的更多相关文章
- 简学Python第四章__装饰器、迭代器、列表生成式
Python第四章__装饰器.迭代器 欢迎加入Linux_Python学习群 群号:478616847 目录: 列表生成式 生成器 迭代器 单层装饰器(无参) 多层装饰器(有参) 冒泡算法 代码开发 ...
- Python 基础 四 面向对象杂谈
Python 基础 四 面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...
- 初学Python(四)——set
初学Python(四)——set 初学Python,主要整理一些学习到的知识点,这次是set. # -*- coding:utf-8 -*- #先来看数组和set的差别 d=[1,1,2,3,4,5] ...
- python 函数“四剑客”的使用和介绍
python函数四剑客:lambda.map.filter和reduce. 一.lambda(匿名函数) 1. 学习lambda要注意一下几点: lambda语句被用来创建新的函数对象,并且在运行的时 ...
- Python第四天 流程控制 if else条件判断 for循环 while循环
Python第四天 流程控制 if else条件判断 for循环 while循环 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Python第二天 ...
- 初识Python(四)
一.数字数据类型 Python的数字数据类型用于存储数值,它是不可变的数据类型,这意味着改变数字数据类型,则需要一个新分配的对象: Python支持四种不同的数值类型: 整型(Int):通常被称为是整 ...
- 孤荷凌寒自学python第四十九天继续研究跨不同类型数据库的通用数据表操作函数
孤荷凌寒自学python第四十九天继续研究跨不同类型数据库的通用数据表操作函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 不同类型 ...
- 孤荷凌寒自学python第四十八天通用同一数据库中复制数据表函数最终完成
孤荷凌寒自学python第四十八天通用同一数据库中复制数据表函数最终完成 (完整学习过程屏幕记录视频地址在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 今天经过反复折腾,最终基本上算 ...
- 孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数
孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数 (完整学习过程屏幕记录视频地址在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 今天打算完成的是通用的(至少目 ...
- 孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类尝试第一天
孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类,尝试第一天 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 按上一天的规划,这是根据过去我自学其它编程语 ...
随机推荐
- 第15章:MongoDB-聚合操作--聚合管道--$match
①$match 用于对文档集合进行筛选,里面可以使用所有常规的查询操作符. 通常会放置在管道最前面的位置,理由如下: 1:快速将不需要的文档过滤,减少后续操作的数据量 2:在投影和分组之前做筛选,查询 ...
- idea常用插件介绍
常用插件 mybatis mapper 选择plugins,搜索mybatis plugin 激活教程 使用 插件的使用
- 给Java开发者的Scala教程
author:Michel Schinz,Philipp Haller 1. 简介 本文将该要的介绍Scala语言和其编译.这里假设读者已经有一定的java开发经验,需要概要的了解他们可以用Scala ...
- 20169207《Linux内核原理及分析》第十二周作业
本周选做的信息安全实验为Python实现Zip文件的暴力破解 实验预备: 这次实验我们需要用到的库为zipfile.下来我们先来了解一下这个模块. 首先我们的重点是对zip文件的操作,而zipfile ...
- hdu 1130 How Many Trees? 【卡特兰数】
题目 题意:给你一个数字n,问你将1~n这n个数字,可以组成多少棵不同的二叉搜索树. 1,2,5,14--根据输出中的规律可以看出这是一个卡特兰数的序列.于是代用卡特兰数中的一个递推式: 因为输入可取 ...
- Strom开发配置手册
一:Storm集群搭建 1.本次开发使用的是storm0.9.3 2.Storm0.9.3集群搭建: 1)storm集群角色包含集群主节点Nimbus:集群从节点Supervisor 2)集群安装:先 ...
- 2.Handler处理器 和 自定义Opener
Handler处理器 和 自定义Opener opener是 urllib2.OpenerDirector 的实例,我们之前一直都在使用的urlopen,它是一个特殊的opener(也就是模块帮我们构 ...
- Android-Kotlin-印章类
上一篇博客介绍了,Android-Kotlin-枚举enum: 由于枚举 和 印章类 有相似之处,所以两者对比一下: Kotlin的枚举,重点区分的数据本身 Kotlin的印章类,重点区分的是数据类型 ...
- Spring Security ——AuthenticationProvider
AuthenticationProvider 目录 1.1 用户信息从数据库获取 1.1.1 使用jdbc-user-service获取 1.1.2 直接使用JdbcDaoImpl ...
- Windwos下Tomcat的安装与配置
一.准备工作 1. JDK环境,可参考https://www.cnblogs.com/eagle6688/p/7873477.html 2. Eclipse 3. Tomcat安装包和源码包 二.下载 ...