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 ...
随机推荐
- LINQ的用法
http://www.cnblogs.com/liulun/archive/2013/02/26/2909985.html(转载)
- bzoj 1046 : [HAOI2007]上升序列 dp
题目链接 1046: [HAOI2007]上升序列 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3620 Solved: 1236[Submit] ...
- Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词
#coding:utf-8 import os,re path = 'test' files = os.listdir(path) def count_word(words): dic = {} ma ...
- 数据库导出到excel
项目结构同上一篇 泛型通用的写法 ExportExcel.java package excel; import java.io.OutputStream; import java.lang.refle ...
- freebsd
#cd /usr/ports/devel/binutils && make install
- [置顶] SOLR 4.4 部署
SOLR 4.4 部署 前言:近期研究下solr4.4的部署,一下是部署步骤,与大家分享下. 下载solr4.4.0.zip 地址 http://mirror.esocc.com/apa ...
- HDU 2501 Tiling_easy version
递推式:f[n]=2*f[n-2]+f[n-1] #include <cstdio> #include <iostream> using namespace std; ]; i ...
- JAVA GUI学习 - JTree树结构组件学习 ***
public class JTreeKnow extends JFrame { public JTreeKnow() { this.setBounds(300, 100, 400, 500); thi ...
- CSS找到 (div+css请讲)
CSS 定位和浮动 CSS 定位和浮动提供了一些特性,使用这些属性,你可以建立栏布局,的重叠布局的一部分,并有一些.也可多年来完成通常需要使用的多个表格能力完成的任务. 定位的基本思路是非常easy. ...
- fopen()函数
1.2 文件的输入输出函数 键盘.显示器.打印机.磁盘驱动器等逻辑设备, 其输入输出都能够通过文件管理的方法来完毕.而在编程时使用最多的要算是磁盘文件, 因此本节主要以磁盘文件为主, 具体介绍Turb ...