Python之路Day6
Day6的主要内容是:
configparser模块
shutil模块
subprocess模块
处理xml的模块
1.configparser模块
#! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "Q1mi" """ configparser 练习 """ import configparser # 写一个配置文件 config = configparser.ConfigParser() config['} config['bitbucket.org'] = {} config['bitbucket.org']['User'] = 'hg' config['topsecret.server.com'] = {} topsecret = config['topsecret.server.com'] topsecret[' # mutates the parser topsecret['ForwardX11'] = 'no' # same here config['DEFAULT']['ForwardX11'] = 'yes' with open('example.ini', 'w') as configfile: config.write(configfile) # 读配置文件 config = configparser.ConfigParser() print(config.sections()) a = config.read("test.cfg") print(a) print(config.sections()) print("bitbucket.org" in config.sections()) print(config["bitbucket.org"]["user"]) for key in config["bitbucket.org"]: print(key, config["bitbucket.org"][key]) # 增删改查 config = configparser.ConfigParser() config.read("test.cfg") sec = config.sections() print(sec) options = config.options("bitbucket.org") print(options) item_list = config.items("bitbucket.org") print(item_list) val = config.get("bitbucket.org", "compressionlevel") print(val) val = config.getint("bitbucket.org", "compressionlevel") print(val) # 改写 config.remove_section("bitbucket.org") config.write(open("test2.cfg", "w")) sec = config.has_section("bitbuckrt.org") print(sec) config.add_section("bitbucket.org") sec = config.has_section("bitbuckrt.org") print(sec) config.write(open("test2.cfg", "w")) config.set(") config.write(open("test2.cfg", "w")) config.remove_option("topsecret.server.com", "port") config.write(open("test2.cfg", "w"))
2.shutil模块
#! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "Q1mi" """ 高级的 文件、文件夹、压缩包 处理模块 """ import shutil import os # 将文件内容(文件对象)拷贝到另一个文件中,可以指定部分拷贝 # with open("D:\qimi_WorkSpace\S12\day6\\test1.txt", "rt") as f1, open("D:\qimi_WorkSpace\S12\day6\\test2.txt", "at")as f2: # shutil.copyfileobj(fsrc=f1, fdst=f2) # 拷贝文件 # shutil.copyfile(src="D:\qimi_WorkSpace\S12\day6\\test1.txt",dst="D:\qimi_WorkSpace\S12\day6\\test2.txt") # 仅拷贝权限。内容、组、用户均不变 # print(os.stat("D:\qimi_WorkSpace\S12\day6\\test2.txt")) # shutil.copymode(src="D:\qimi_WorkSpace\S12\day6\\test1.txt", dst="D:\qimi_WorkSpace\S12\day6\\test2.txt") # print(os.stat("D:\qimi_WorkSpace\S12\day6\\test2.txt")) # # 拷贝状态的信息,包括:mode bits, atime, mtime, flags # shutil.copystat(src=,dst=) # # # 拷贝文件和权限 # shutil.copy(src, dst) # 拷贝文件和状态信息 # shutil.copy2(src,dst) # 递归的去拷贝文件 # shutil.ignore_patterns(*patterns) # shutil.copytree(src, dst, symlinks=False, ignore=None) # 递归的去删除文件 # shutil.rmtree(path[, ignore_errors[, onerror]]) # 递归的去移动文件 # shutil.move(src, dst) # 创建压缩包并返回文件路径,例如:zip、tar # shutil.make_archive(base_name, format,...) # # base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径, # 如:www =>保存至当前路径 # 如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/ # format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar” # root_dir: 要压缩的文件夹路径(默认当前目录) # owner: 用户,默认当前用户 # group: 组,默认当前组 # logger: 用于记录日志,通常是logging.Logger对象 # 将D:\qimi_WorkSpace\S12\day6目录下的文件打包成test.tar.gz,放置在当前目录 et = shutil.make_archive("test", 'gztar', root_dir='D:\\qimi_WorkSpace\\S12\\day6') # shutil模块对压缩包的处理是调用ZipFile和TarFile两个模块来进行的 # zipfile模块 import zipfile # 压缩 z = zipfile.ZipFile('test.zip', 'w') z.write('a.log') z.write('a.data') z.close() # 解压 z = zipfile.ZipFile('test.zip', 'r') z.extractall() z.close() # tarfile模块 import tarfile # 压缩 tar = tarfile.open('test.tar','w') tar.add('D:\\qimi_WorkSpace\\S12\\day6\\test1.tar', arcname='test1.tar') tar.add('D:\\qimi_WorkSpace\\S12\\day6\\test2.tar', arcname='test2.tar') tar.close() # 解压 tar = tarfile.open('test.tar','r') tar.extractall() # 可设置解压地址 tar.close()
3.subprocess模块
#! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "Q1mi" """ subprocess模块的练习 """ import subprocess subprocess.run("ipconfig") # subprocess.Popen()用于执行复杂的系统命令 p = subprocess.Popen("ifconfig", shell=True, stdout=subprocess.PIPE) print(p.stdout.read()) # 需要交互的命令用到管道PIPE obj = subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) obj.stdin.write(b"print('hello1')\n") obj.stdin.write(b"print('hello2')\n") obj.stdin.write(b"print('hello3')\n") a = obj.communicate(timeout=10) print(a)
4.处理xml文件的模块
#! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "Q1mi" """ xml模块的练习 """ import xml.etree.ElementTree as ET # 解析xml文件 tree = ET.parse("test.xml") # 获取根 root = tree.getroot() print(root.tag) # 遍历xml文档 for child in root: print(child.tag, child.attrib) for i in child: print(i.tag, i.text) # 只遍历year节点 for i in root.iter("year"): print(i.tag, i.text) # 修改和删除xml文件 tree = ET.parse("test2.xml") root = tree.getroot()
Python之路Day6的更多相关文章
- (转)Python之路,Day6 - 面向对象学习
本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战> ...
- 转:Python之路,Day6 - 面向对象学习
这篇文章写的不错,转来收了 转自:http://www.cnblogs.com/alex3714/articles/5188179.html 本节内容: 面向对象编程介绍 为什么要用面向对象进 ...
- 十一Python之路,Day6 - 面向对象学习
本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战& ...
- Python之路,Day6 - Python基础6
本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...
- Python之路,Day6 - 面向对象学习
本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏 ...
- python之路-Day6
time & datetime模块 #_*_coding:utf-8_*_ __author__ = 'Alex Li' import time # print(time.clock()) # ...
- Python之路
Python学习之路 第一天 Python之路,Day1 - Python基础1介绍.基本语法.流程控制 第一天作业第二天 Python之路,Day2 - Pytho ...
- Python之路【第一篇】python基础
一.python开发 1.开发: 1)高级语言:python .Java .PHP. C# Go ruby c++ ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
随机推荐
- # void :;
href="#"---->top 连续点击的时候会出bug javascri中的void是一个操作符,该操作符指定要计算一个表达式但是不返回值. javascript:voi ...
- Windows10笔记本双显卡导致的启动黑屏解决办法之一
参考链接:http://www.zhihu.com/question/33662311 大概就是关掉ulps. ulps,显卡的多核心超低功率状态,节能用的,AMD出的双显卡的一种节能方案.不过,与某 ...
- Microsoft 收购 Apiphany
StevenMartinMS 2013 年 10 月 23 日上午 10:00 今天,我高兴地宣布我们收购了业界领先的 API 管理交付平台 - Apiphany. 应用程序可扩展性已经不算什么新鲜事 ...
- linux内核源码阅读之facebook硬盘加速flashcache之二
flashcache数据结构都在flashcache.h文件中,但在看数据结构之前,需要先过一遍flashcache是什么,要完成哪些功能?如果是自己设计这样一个系统的话,大概要怎么设计. 前面讲过, ...
- Shot(三分)
Shot Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 2014 android毕设代做 代做Android毕设 安卓毕设
近期略有闲暇. 看到部分老友帮忙做毕业设计. 一来能够锻炼下小技能,二来能够得点零花小钱. 心遂小动.跃跃欲试. 毕设这件事情,个人觉得还是自己做的好. 只是每一个人都有各种各样的原因不能自己完毕. ...
- [python网络编程]DNSserver
在上一篇中,使用scrapy改动源IP发送请求的最后我们提到因为hosts文件不支持正则,会导致我们的随机域名DNS查询失败. 使用DNS代理服务器能够解决问题, 以下是我用gevent写的小工具.非 ...
- ASP.NET页面传值方式
http://www.cnblogs.com/zhangkai2237/archive/2012/05/06/2486462.html http://www.cnblogs.com/xiaoyusmi ...
- [转]SAP中找表的方法
http://blog.chinaunix.net/uid-24063584-id-2642334.html 分类: 18种根据屏幕字段查找数据库表数据的技巧 帮助 18种根据屏幕字段查找潜在数据 ...
- Quiz 6b Question 8————An Introduction to Interactive Programming in Python
Question 8 We can use loops to simulate natural processes over time. Write a program that calcula ...