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 csv

fr=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

Beijing

Bob

22

Shanghai

Marry

89

Shenzhen

Marry

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 minidom

dom = minidom.parse('class_info.xml')

root = dom.documentElement

logins = dom.documentElement

logins = 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 minidom

dom=minidom.parse('class_info.xml')

root=dom.documentElement

tags=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 threading

def 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())

8、多进程

# 多进程

from time import ctime, sleep

import multiprocessing

def 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())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值