【python】python文件处理

1、读取txt文件

# 读取stu_info.txt文件内容,并将文件中所有学生名称显示出来f = open('stu_info.txt', 'r') lines = f.readlines() print(lines)for line in lines: print(line.split(',')[0])f.close()

2、CSV文件读写
''' 读写csv文件,csv即为逗号分隔值(Comma-Separated Values,CSV), 有时也称为字符分隔值,其文件以纯文本形式存储表格数据(数字和文本) '''import csvfr=open('stu_info.csv', 'r') csv_file = csv.reader(fr)for stu in csv_file: print(stu)fr.close()#对stu_info.csv文件追加写入两个学生信息Marry和Rom stu=['Marry',28,'Changsha'] stu1=['Rom',23,'Chengdu']out=open('stu_info.csv','a',newline='') csv_write=csv.write(out,dialect='excel')csv_write.writerow(stu) csv_write.writerow(stu1)out.close()

3、读取xml文件元素节点
Jack 28 BeijingBob 22 ShanghaiMarry 89 ShenzhenMarry 89 Shenzhen Nancy 90 Shenzhen

#查看class_info.xml文件里Class节点对属性(节点名称、节点值,结点类型)from xml.dom import minidom#加载xml文件 dom=minidom.parse('class_info.xml') #加载dom对象元素 root=dom.documentElement #打印结点信息 print(root.nodeName) print(root.nodeValue) print(root.nodeType)''' nodeName节点名称 nodeValue返回文本节点的值 nodeType属性,返回以数字值指定的节点的节点类型 如果节点是元素节点,则nodeType属性将返回1 如果节点是属性节点,则nodeType属性将返回2 '''

4、读取xml文本节点
#分别打印出class_info.xml里面学生和老师的详细信息(姓名、年龄、城市)from xml.dom import minidom#获取标签对的值 dom=minidom.parse('class_info.xml') #获取文档对象元素 root=dom.documentElement #根据标签名称获取标签对象 names=root.getElementsByTagName('name') ages=root.getElementsByTagName('age') citys=root.getElementsByTagName('city')#分别打印显示xml文档标签对里面对内容 for i in range(4): print(names[i].firstChild.data) print(ages[i].firstChild.data) print(citys[i].firstChild.data) print("----------------")

5、读取xml文件属性节点的值
# 读取属性节点的值:分别读取打印老师和学生的账号密码from xml.dom import minidomdom = minidom.parse('class_info.xml') root = dom.documentElementlogins = dom.documentElementlogins = root.getElementsByTagName('login')# 获取login标签username属性 for i in range(2): username = logins[i].getAttribute('username') print(username) password = logins[i].getAttribute('password') print(password)

6、读取子节点信息
''' 读取子节点信息 nodeName 节点名称 nodeValue 节点值 nodeType 节点类型 '''from xml.dom import minidomdom=minidom.parse('class_info.xml') root=dom.documentElementtags=root.getElementsByTagName('student') print(tags[0].nodeName) print(tags[0].tagName) print(tags[0].nodeType) print(tags[0].nodeValue)

7、多线程
# 多线程from time import ctime, sleep import threadingdef talk(content, loop): for i in range(loop): print('Start Talk %s %s' % (content, ctime())) sleep(3)def write(content, loop): for i in range(loop): print('Start Write %s %s' % (content, ctime())) sleep(2)# 定义和加载读写线程 threads = [] t1 = threading.Thread(target=talk, args=('Speak: Hello world', 5)) threads.append(t1)# 执行多线程 t2 = threading.Thread(target=write, args=('Write: gogogo', 5)) threads.append(t2)if __name__ == '__main__': for t in threads: t.start() for t in threads: t.join() print('All the End %r' % ctime())

【【python】python文件处理】 8、多进程
# 多进程from time import ctime, sleep import multiprocessingdef talk(content, loop): for i in range(loop): print('Start Talk %s %s' % (content, ctime())) sleep(3)def write(content, loop): for i in range(loop): print('Start Write %s %s' % (content, ctime())) sleep(2)# 定义和加载读写进程 processs = [] p1 = multiprocessing.Process(target=talk, args=('Speak: Hello world', 5)) processs.append(p1)# 执行多线程 p2 = multiprocessing.Process(target=write, args=('Write: gogogo', 5)) processs.append(p2)if __name__ == '__main__': for p in processs: p.start() for p in processs: p.join() print('All the End %r' % ctime())

    推荐阅读