Day6的主要内容是:

configparser模块

shutil模块

subprocess模块

处理xml的模块

1.configparser模块

  1. #! /usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # __author__ = "Q1mi"
  4. """
  5. configparser 练习
  6. """
  7.  
  8. import configparser
  9.  
  10. # 写一个配置文件
  11. config = configparser.ConfigParser()
  12. config['}
  13.  
  14. config['bitbucket.org'] = {}
  15. config['bitbucket.org']['User'] = 'hg'
  16. config['topsecret.server.com'] = {}
  17. topsecret = config['topsecret.server.com']
  18. topsecret[' # mutates the parser
  19. topsecret['ForwardX11'] = 'no' # same here
  20. config['DEFAULT']['ForwardX11'] = 'yes'
  21. with open('example.ini', 'w') as configfile:
  22. config.write(configfile)
  23.  
  24. # 读配置文件
  25. config = configparser.ConfigParser()
  26. print(config.sections())
  27. a = config.read("test.cfg")
  28. print(a)
  29. print(config.sections())
  30. print("bitbucket.org" in config.sections())
  31. print(config["bitbucket.org"]["user"])
  32.  
  33. for key in config["bitbucket.org"]:
  34. print(key, config["bitbucket.org"][key])
  35.  
  36. # 增删改查
  37. config = configparser.ConfigParser()
  38. config.read("test.cfg")
  39. sec = config.sections()
  40. print(sec)
  41.  
  42. options = config.options("bitbucket.org")
  43. print(options)
  44.  
  45. item_list = config.items("bitbucket.org")
  46. print(item_list)
  47.  
  48. val = config.get("bitbucket.org", "compressionlevel")
  49. print(val)
  50. val = config.getint("bitbucket.org", "compressionlevel")
  51. print(val)
  52.  
  53. # 改写
  54. config.remove_section("bitbucket.org")
  55. config.write(open("test2.cfg", "w"))
  56.  
  57. sec = config.has_section("bitbuckrt.org")
  58. print(sec)
  59. config.add_section("bitbucket.org")
  60. sec = config.has_section("bitbuckrt.org")
  61. print(sec)
  62.  
  63. config.write(open("test2.cfg", "w"))
  64.  
  65. config.set(")
  66. config.write(open("test2.cfg", "w"))
  67.  
  68. config.remove_option("topsecret.server.com", "port")
  69. config.write(open("test2.cfg", "w"))

2.shutil模块

  1. #! /usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # __author__ = "Q1mi"
  4.  
  5. """
  6. 高级的 文件、文件夹、压缩包 处理模块
  7. """
  8.  
  9. import shutil
  10. import os
  11.  
  12. # 将文件内容(文件对象)拷贝到另一个文件中,可以指定部分拷贝
  13. # with open("D:\qimi_WorkSpace\S12\day6\\test1.txt", "rt") as f1, open("D:\qimi_WorkSpace\S12\day6\\test2.txt", "at")as f2:
  14. # shutil.copyfileobj(fsrc=f1, fdst=f2)
  15.  
  16. # 拷贝文件
  17. # shutil.copyfile(src="D:\qimi_WorkSpace\S12\day6\\test1.txt",dst="D:\qimi_WorkSpace\S12\day6\\test2.txt")
  18.  
  19. # 仅拷贝权限。内容、组、用户均不变
  20. # print(os.stat("D:\qimi_WorkSpace\S12\day6\\test2.txt"))
  21. # shutil.copymode(src="D:\qimi_WorkSpace\S12\day6\\test1.txt", dst="D:\qimi_WorkSpace\S12\day6\\test2.txt")
  22. # print(os.stat("D:\qimi_WorkSpace\S12\day6\\test2.txt"))
  23.  
  24. # # 拷贝状态的信息,包括:mode bits, atime, mtime, flags
  25. # shutil.copystat(src=,dst=)
  26. #
  27. # # 拷贝文件和权限
  28. # shutil.copy(src, dst)
  29.  
  30. # 拷贝文件和状态信息
  31. # shutil.copy2(src,dst)
  32.  
  33. # 递归的去拷贝文件
  34. # shutil.ignore_patterns(*patterns)
  35. # shutil.copytree(src, dst, symlinks=False, ignore=None)
  36.  
  37. # 递归的去删除文件
  38. # shutil.rmtree(path[, ignore_errors[, onerror]])
  39.  
  40. # 递归的去移动文件
  41. # shutil.move(src, dst)
  42.  
  43. # 创建压缩包并返回文件路径,例如:zip、tar
  44. # shutil.make_archive(base_name, format,...)
  45.  
  46. #
  47. # base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,
  48. # 如:www =>保存至当前路径
  49. # 如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/
  50. # format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
  51. # root_dir: 要压缩的文件夹路径(默认当前目录)
  52. # owner: 用户,默认当前用户
  53. # group: 组,默认当前组
  54. # logger: 用于记录日志,通常是logging.Logger对象
  55.  
  56. # 将D:\qimi_WorkSpace\S12\day6目录下的文件打包成test.tar.gz,放置在当前目录
  57. et = shutil.make_archive("test", 'gztar', root_dir='D:\\qimi_WorkSpace\\S12\\day6')
  58.  
  59. # shutil模块对压缩包的处理是调用ZipFile和TarFile两个模块来进行的
  60.  
  61. # zipfile模块
  62. import zipfile
  63.  
  64. # 压缩
  65. z = zipfile.ZipFile('test.zip', 'w')
  66. z.write('a.log')
  67. z.write('a.data')
  68. z.close()
  69.  
  70. # 解压
  71. z = zipfile.ZipFile('test.zip', 'r')
  72. z.extractall()
  73. z.close()
  74.  
  75. # tarfile模块
  76. import tarfile
  77.  
  78. # 压缩
  79. tar = tarfile.open('test.tar','w')
  80. tar.add('D:\\qimi_WorkSpace\\S12\\day6\\test1.tar', arcname='test1.tar')
  81. tar.add('D:\\qimi_WorkSpace\\S12\\day6\\test2.tar', arcname='test2.tar')
  82. tar.close()
  83.  
  84. # 解压
  85. tar = tarfile.open('test.tar','r')
  86. tar.extractall() # 可设置解压地址
  87. tar.close()

3.subprocess模块

  1. #! /usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # __author__ = "Q1mi"
  4.  
  5. """
  6. subprocess模块的练习
  7. """
  8.  
  9. import subprocess
  10.  
  11. subprocess.run("ipconfig")
  12.  
  13. # subprocess.Popen()用于执行复杂的系统命令
  14. p = subprocess.Popen("ifconfig", shell=True, stdout=subprocess.PIPE)
  15. print(p.stdout.read())
  16.  
  17. # 需要交互的命令用到管道PIPE
  18. obj = subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  19. obj.stdin.write(b"print('hello1')\n")
  20. obj.stdin.write(b"print('hello2')\n")
  21. obj.stdin.write(b"print('hello3')\n")
  22. a = obj.communicate(timeout=10)
  23. print(a)

4.处理xml文件的模块

  1. #! /usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # __author__ = "Q1mi"
  4.  
  5. """
  6. xml模块的练习
  7. """
  8.  
  9. import xml.etree.ElementTree as ET
  10.  
  11. # 解析xml文件
  12. tree = ET.parse("test.xml")
  13. # 获取根
  14. root = tree.getroot()
  15. print(root.tag)
  16.  
  17. # 遍历xml文档
  18. for child in root:
  19. print(child.tag, child.attrib)
  20. for i in child:
  21. print(i.tag, i.text)
  22.  
  23. # 只遍历year节点
  24. for i in root.iter("year"):
  25. print(i.tag, i.text)
  26.  
  27. # 修改和删除xml文件
  28. tree = ET.parse("test2.xml")
  29. root = tree.getroot()

Python之路Day6的更多相关文章

  1. (转)Python之路,Day6 - 面向对象学习

    本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.     引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战> ...

  2. 转:Python之路,Day6 - 面向对象学习

    这篇文章写的不错,转来收了 转自:http://www.cnblogs.com/alex3714/articles/5188179.html   本节内容:   面向对象编程介绍 为什么要用面向对象进 ...

  3. 十一Python之路,Day6 - 面向对象学习

      本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.     引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战& ...

  4. Python之路,Day6 - Python基础6

    本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...

  5. Python之路,Day6 - 面向对象学习

    本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏 ...

  6. python之路-Day6

    time & datetime模块 #_*_coding:utf-8_*_ __author__ = 'Alex Li' import time # print(time.clock()) # ...

  7. Python之路

    Python学习之路 第一天   Python之路,Day1 - Python基础1介绍.基本语法.流程控制              第一天作业第二天   Python之路,Day2 - Pytho ...

  8. Python之路【第一篇】python基础

    一.python开发 1.开发: 1)高级语言:python .Java .PHP. C#  Go ruby  c++  ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...

  9. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

随机推荐

  1. MVC-04 视图(3)

    五.Url辅助方法 Url辅助方法与HTML辅助方法很类似,HTML辅助方法用来产生HTML标签,而Url辅助方法则负责用来产生Url网址. @Url.Action("About" ...

  2. Web Api帮助页面或用户手册

    我这么玩Web Api(一):帮助页面或用户手册(Microsoft and Swashbuckle Help Page)   前言 你需要为客户编写Api调用手册?你需要测试你的Api接口?你需要和 ...

  3. 配置管理多个ssh key

    假设需要为两台主机建立ssh key以便抓取.更新代码,主机A:111.111.111.111,主机B:222.222.222.222. 首先,用两个账户(hostA@email.com与hostB@ ...

  4. BZOJ2440(全然平方数)二分+莫比乌斯容斥

    题意:全然平方数是指含有平方数因子的数.求第ki个非全然平方数. 解法:比較明显的二分,getsum(int middle)求1-middle有多少个非全然平方数,然后二分.求1-middle的非全然 ...

  5. Js 返回页面 or 跳转页面

    跳出 iframe 在当前页跳转, window.parent.frames.location.href=www.baidu.com" 跳转页面 onclick="history. ...

  6. CodeForces 443B Kolya and Tandem Repeat

    题目:Click here 题意:给定一个字符串(只包含小写字母,并且最长200)和一个n(表示可以在给定字符串后面任意加n(<=200)个字符).问最长的一条子串长度,子串满足前半等于后半. ...

  7. Java map取value最大值和最小值

    /** * 求Map<K,V>中Value(值)的最小值 * * @param map * @return */ public static Object getMinValue(Map& ...

  8. python学习之lambda匿名函数

    1 Python支持运行时使用“lambda”建立匿名函数(anonymous functions that are not bound to a name). python "lambda ...

  9. NSString 用法大全。

    一.NSString 创建字符串.  NSString *astring = @"This is a String!"; 创建空字符串,给予赋值.  NSString *astri ...

  10. 转:不会定义jQuery插件,不要说会jQuery

    一:导言 有些WEB开发者,会引用一个JQuery类库,然后在网页上写一写$("#"),$("."),写了几年就对别人说非常熟悉JQuery.我曾经也是这样的人 ...