1.文件的打开与关闭
1 2 3 4 5 6 7 8 9
| fp = open('a.txt') fp = open('a.txt', 'w')
fp.close() 使用with(一种上下文管理协议)可以避免忘记close()操作,例如 with open('a.txt', 'w') as data: print("it's...", file=data)
|
2.从文件读取数据
1 2 3
| fp.readline() for each_line in fp: print(each_line)
|
3.文件指针
4.检查文件是否存在
1
| os.path.exists('filename') # 返回布尔值
|
5.写入数据到文件
1 2
| # 直接用print print('string', file=fp)
|
6.读取 XML 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| import xml.dom.minidom #打开 XML 文档 xmlDoc = xml.dom.minidom.parse('test.xml') root = xmlDoc.documentElement # 获取“base”节点列表 baselist = root.getElementsByTagName('base') # 用 while 循环所有 base 节点 i=0 while i<len (baselist)-1: i=i+1 base=baselist[i] baselang=base.getAttribute('loc')# 获取 base 节点中 loc 属性的值 print (baselang) print (base.nodeName) print (base.firstChild.data)# 获取节点的值
|
每一个结点都有它的 nodeName,nodeValue,nodeType 属性:nodeName 是结点名字;nodeValue 是结点的值,只对文本结点有效;nodeType 是结点的类型。
getElementsByTagName 方法获取指定名称的标签,getAttribute 方法可以获得元素的属性所对应的值,firstChild 属性返回被选节点的第一个子节点,.data 表示获取该节点人数据。
注意:
- 使用的是 Python 3.x;
- 如果循环控制语句条件设置不当,会造成内存溢出,报错:“list index out of range”;
- 文件名不要使用 xml.py,要不 import 会导入文件本身而出错:“No module named ‘xml.dom’; ‘xml’ is not a package”;
7.读取 CSV 文件
7.1..从 csv 中读取文件, 基本和传统文件读取类似
1 2 3 4 5
| import csv with open('data.csv', 'rb') as f: reader = csv.reader(f) for row in reader: print row
|
7.2.向 csv 文件写入数据
1 2 3 4 5 6 7 8
| import csv with open( 'data.csv', 'wb') as f: writer = csv.writer(f) writer.writerow(['name', 'address', 'age']) data = [ ( 'xiaoming ','china','10'), ( 'Lily', 'USA', '12')] writer.writerows(data)
|