2016/09/23

1.  Configparser

# configparser用于处理特定格式的文件,其本质上是利用open来操作文件。
import configparser

config = configparser.ConfigParser()
config.read(‘f1‘,encoding=‘utf-8‘)

# 获取所有节点
ret_1 = config.sections()
print(ret_1)

# 获取指定节点下所有的键值对
ret_2 = config.items(‘section1‘)
print(ret_2)

# 获取指定节点下所有的键
ret_3 = config.options(‘section1‘)
print(ret_3)

# 获取指定节点下指定key的值
v1 = config.get(‘section1‘,‘k1‘)
v2 = config.getint(‘section4‘,‘k4‘)
v3 = config.getfloat(‘section5‘,‘k5‘)
v4 = config.getboolean(‘section6‘,‘k6‘)
print(v1)
print(v2)
print(v3)
print(v4)

# 检查节点
has_sec = config.has_section(‘section7‘)
print(has_sec)

# 添加节点
config.add_section(‘SEC_1‘)
config.write(open(‘f2‘,‘w‘))

# 删除节点
config.remove_section(‘SEC_1‘)
config.write(open(‘f3‘,‘w‘))

# 检查指定组内的键值对
has_opt = config.has_option(‘section1‘,‘k1‘)
print(has_opt)

# 删除指定组内的键值对
config.remove_option(‘section1‘,‘k1‘)
config.write(open(‘f4‘,‘w‘))

# 设置指定组内的键值对
config.set(‘section1‘,‘k10‘,‘123‘)
config.write(open(‘f5‘,‘w‘))

2. XML

  - traveral

from xml.etree import ElementTree as ET

# A.利用ElementTree.XML将字符串解析成xml对象
# str_xml = open(‘xo.xml‘,‘r‘).read()  # 打开文件,读取XML内同
# root = ET.XML(str_xml)  # 将字符串解析成xml特殊对象,root代指xml文件的根节点
# print(root)

# B.利用ElementTree.parse将文件直接解析成xml对象
tree = ET.parse(‘xo.xml‘)  # 直接解析xml文件
root = tree.getroot()  # 获取xml文件的根节点
# print(root)  # <Element ‘data‘ at 0x0000018AC8B445E8>

# a. 遍历XML文档的所有内容
# print(root.tag)  # data  顶层标签
#
# for child in root:  # 遍历XML文档的第二层
# 	print(child.tag, child.attrib)  # 第二层节点的标签名称和标签属性和内容
# 	for i in child:  # 遍历XML文档的第三层
# 		print(‘\t‘, i.tag, i.attrib, i.text)  # 第三层节点的标签名称和属性和内容

# b.遍历XML中指定的节点
print(root.tag)
for node in root.iter(‘rank‘):  # 遍历XML中所有的year节点
	print(node.tag, node.text)  # 节点的标签名称和内容

  - modify

# 解析字符串方式,修改,保存

# from xml.etree import ElementTree as ET
# str_xml = open(‘xo.xml‘, ‘r‘).read()  # 利用ElementTree.XML将字符串解析成xml对象
# root = ET.XML(str_xml)  # root为根节点
# print(root.tag)
#
# for node in root.iter(‘year‘):  # 循环所有的year节点
# 	new_year = int(node.text) + 1  # year节点的内容加1
# 	node.text = str(new_year)  # year节点内容更新
#
# 	node.set(‘name‘, ‘alex‘)  # 设置year节点的属性
# 	node.set(‘age‘, ‘19‘)  # 设置year节点的属性
#
# 	del node.attrib[‘name‘]  # 删除year节点的某属性
#
# tree = ET.ElementTree(root)  # 创建tree
# tree.write(‘xo1.xml‘, encoding=‘utf-8‘)  # 保存文件

# 解析文件方式,修改,保存

from xml.etree import ElementTree as ET
tree = ET.parse(‘xo.xml‘)  # 直接解析xml文件
root = tree.getroot()  # 获取xml文件的根节点

for node in root.iter(‘year‘):  # 循环所有的year节点
	new_year = int(node.text) + 1  # year节点的内容加1
	node.text = str(new_year)  # year节点内容更新

	node.set(‘name‘, ‘alex‘)  # 设置year节点的属性
	node.set(‘age‘, ‘19‘)  # 设置year节点的属性

	del node.attrib[‘name‘]  # 删除year节点的某属性

tree.write(‘xo2.xml‘, encoding=‘utf-8‘)  # 保存文件

  - delete

# 解析字符串方式,删除,保存

# from xml.etree import ElementTree as ET
# str_xml = open(‘xo.xml‘, ‘r‘).read()  # 利用ElementTree.XML将字符串解析成xml对象
# root = ET.XML(str_xml)  # root为根节点
# print(root.tag)
#
# for country in root.findall(‘country‘):
# 	rank = int(country.find(‘rank‘).text)
# 	if rank > 90:
# 		root.remove(country)
#
# tree = ET.ElementTree(root)  # 创建tree
# tree.write(‘xo3.xml‘, encoding=‘utf-8‘)  # 保存文件

# 解析文件方式,删除节点,保存

# from xml.etree import ElementTree as ET
# tree = ET.parse(‘xo.xml‘)  # 直接解析xml文件
# root = tree.getroot()  # 获取xml文件的根节点
#
# for country in root.findall(‘country‘):
# 	rank = int(country.find(‘rank‘).text)
# 	if rank > 50:
# 		root.remove(country)
#
# tree.write(‘xo3.xml‘, encoding=‘utf-8‘)  # 保存文件

3. Pycharm tips

  - 基本设置

    - 不使用tab、tab=4空格:Editor>Code Style>Python
    - 字体、字体颜色:Edit>Colors & Fonts>Python
    - 关闭自动更新:Appearance & Behavior>System Settings>Updates
    - 脚本头设置:Edit>File and Code Templates>Python Script 注:其他类似
    - 显示行号:Edit>General>Appearance>Show line numbers 注:2016.2默认显示行号
    - 右侧竖线是PEP8的代码规范,提示一行不要超过120个字符
    - 导出、导入你自定义的配置: File>Export Settings、Import Settings

  - 常用快捷键,例如复制当前行、删除当前行、批量注释、缩进、查找和替换。

    - 常用快捷键的查询和配置:Keymap
    - Ctrl + D:复制当前行
    - Ctrl + Y:删除当前行
    - Shift + Enter:快速换
    - Ctrl + /:快速注释(选中多行后可以批量注释)
    - Tab:缩进当前行(选中多行后可以批量缩进)
    - Shift + Tab:取消缩进(选中多行后可以批量取消缩进)
    - Ctrl + F:查找
    - Ctrl + R:替换

  - 常用操作指南

    - 复制文件路径:左侧文件列表右键选中的文件>Copy Path
    - 在文件管理器中打开:右键选中的文件>往下找到Show In Explorer
    - 快速定位:Ctrl + 某些内建模块之后,点击在源文件中展开
    - 查看结构:IDE左侧边栏Structure 查看当前项目的结构
    - tab批量换space:Edit>Convert Indents
    - TODO的使用:# TODO 要记录的事情
    - Debug设置断点,直接点击行号与代码之间的空白处即可设置断点(视频里忘了说)
    - Tab页上右键>Move Right(Down),把当前Tab页移到窗口右边(下边),方便对比
    - 文件中右键>Local History能够查看文件修改前后的对比
    - IDE右下角能看到一些有用的信息,光标当前在第几行的第几个字符、当前回车换行、当前编码类型、当前Git分支
    - IDE右侧边栏>Database
    - 单独一行的注释:#+1空格+注释内容

    - 代码后跟着的注释:2空格+#+1空格+注释内容

时间: 2024-08-02 11:00:22

2016/09/23的相关文章

2016.09.21 公司裁员想到的

公司最近裁员,好多同事都走了. 想到了,不管在那里都要努力工作,成为该领域的专家,才能立于不败之地. 得之何喜,失之何忧. 加油,最好自己,无愧我心. 不断进步,不断上升 2016.09.21 晚 于北京朝阳

【英语学习】2016.09.11 Culture Insider: Teacher&#39;s Day in ancient China

Culture Insider: Teacher's Day in ancient China 2016-09-10 CHINADAILY Today is the 32nd Chinese Teacher's Day – a festival celebrating the 2,300-year tradition of respecting teachers and education in China. It's similar to the birthday of Confucius o

2016/09/20

1. Python序列化之pickle模块 - 用于[python特有的类型]和[python基本数据类型]间进行转换 - pickle模块提供了四个功能:dumps.dump.loads.load - json更加适合跨语言 基本数据类型的序列化  pickle仅适用于python 复杂类型的序列化 # import json # dic = {'k1': 'v1'} # print(dic, type(dic)) # # res = json.dumps(dic) # 将python的基本数

2016.10.23大型在职研究生招生说明会

气温骤降,金秋已值,一年一度的十月攻坚战开始了.伴随着在职研究生新政的颁布,北京地区各大院校在职研究生的新简章轮番更新,给很多准备报考在职研究生的学员带来了各种混乱以及忐忑. 正巧,2016年秋季大型在职研究生招生说明会即将在北京国家图书馆召开.不管你对在职研究生有多少疑问,这次会议都会给你一个完美的解释. 10月23日北京地区大型在职研究生招生说明会有必要去吗?去了以后真的能解决所有疑惑吗? 其实啊,我们在9月17日已经成功举办了一次北京大型在职研究生说明会,通过9.17说明会的完美收官总结一

OneZero第三次站立会议(2016.3.23)

会议时间:2016年3月23日 13:00~13:15 会议成员:冉华,张敏,王巍,夏一鸣. 会议目的:汇报前一天工作,全体成员评论并修改. 会议内容:以下为会议插图 1.界面原型方面,夏在统计界面中添加了“圆饼图”界面,在主界面添加了“摇一摇”按钮并添加了摇一摇界面.如下图: 2.冉已经确定开发环境.如第一张图所示.随后便会让所有成员拷贝,安装,配置.冉写出了开发环境的安装配置文档,十分之赞. 3.需求图,张已经修改完毕.接下来是需求列表的整理,张正在进行中. 会议体会:团队交流流畅.当一个成

2016/11/23 学习总结

今天学了JDK中的常用类 Date和Calendar以前就用过,但今天再看还是跟第一次用一样.果然这些工具就要常用才行呢-- 老师让用MarkdownPad来作笔记,支持html,很溜啊,我是不是应该再过一遍HTML啊,全忘了... 摘抄了一些笔记-- 11/23学习笔记: JDK常用类 1. System类 7. DateFormate抽象类与SimpleDateFormate类 2. Runtime类 8. Calendar抽象类与GregorianCalenlar类 3. String类

2016.9.23小程序---数据库

学生表:t_student编号s_id 整形 主键 自增姓名:s_name 字符串 不允许重复 性别:s_sex 字符串 默认值 男 年龄:s_age 整形 班级: s_class 字符串 建表 并添加数据,数据不能少于10条,并完成以下题目 1.把刘基的名字修改为刘伯温2.唐伯虎年龄20,性别男,班级为T130,添加到表中 3.查询出所有姓名包括伯的所有的人员的信息4,查询年龄在10-20之间的所有人员的信息5,查询前5条年龄在10-20之间的所有人员的信息6,将年龄在10-20之间的所有人员

G_S男女匹配算法(算法的第一个程序2016.09.19)

1 #include<iostream> 2 using namespace std; 3 int main(){ 4 int Smallest_numberFree = 0;//记录单身的号码最低的男性 5 int i = Smallest_numberFree, n, k = -1;//n代表有多少对男女 6 7 cout << "请输出有多少对男女:"; 8 cin >> n; 9 int **Man = new int*[n], **Woma

2016.4.23 浙江省赛题解

Apples and Ideas Time Limit: 2 Seconds      Memory Limit: 65536 KB "If you have an apple and I have an apple and we exchange these apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these