乐趣区

关于人工智能:pythonpython文件处理

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 文件元素节点

<?xml version="1.0" encoding="UTF-8"?>
<Class>
    <student>
        <name>Jack</name>
        <age>28</age>
        <city>Beijing</city>
    </student>
    <student>
        <name>Bob</name>
        <age>22</age>
        <city>Shanghai</city>
    </student>
    <student>
        <name>Marry</name>
        <age>89</age>
        <city>Shenzhen</city>
    </student>

    <student>
        <name>Marry</name>
        <age>89</age>
        <city>Shenzhen</city>
    </student>

    <teacher>
        <name>Nancy</name>
        <age>90</age>
        <city>Shenzhen</city>
    </teacher>

    <account>
        <login username="student" password="123456"/>
        <login username="teacher" password="88888888"/>
    </account>


</Class>
# 查看 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())
退出移动版