python学习笔记——(三)文件操作

·集合操作及其相应的操作符表示
集合中没有插入,只有添加,因为毕竟无序
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Vergil Zhang

list_1 = [1, 4, 5, 7, 3, 6, 7, 9]
list_1 = set(list_1)
print(list_1, type(list_1))

list_2 = set([2, 6, 0, 66, 22, 8])
print(list_1,list_2)

#交集
print(list_1.intersection(list_2))
print(list_1 & list_2)
#并集
print(list_1.union(list_2))
print(list_1 | list_2)
#差集,list_1有而list_2没有的
print(list_1.difference(list_2))
print(list_1 - list_2)

list_3 = set([1,3,7])
print(list_3.issubset(list_1))          #判断是否为子集
print(list_1.issuperset(list_3))        #判断是否是父集

#反向差集,取出两个互相没有的
print(list_1.symmetric_difference(list_2))
print(list_1 ^ list_2)

list_4 = set([5,6,8])
print(list_3.isdisjoint(list_4))            #如果两个集合没有交集则return true

#向集合中添加
list_1.add('x')
list_1.update(['a', 'v', 'b'])
print(list_1)

#删除
list_1.remove('a')          #删除不存在的元素会报错
list_1.discard('v')     #删除不存在的元素不会报错

print(len(list_1))      #list_1的长度
print('a' in list_1)        #判断'a'是否在list_1中

#判断x中的每一个元素是否都在list_1中
x = {1, 3}
print(x.issubset(list_1))
print(x <= list_1)
#判断x中的每一个元素是否都在list_1中
print(list_1.issuperset(x))
print(list_1 >= x)

·文件操作
文件操作步骤:
1.打开文件,得到文件句柄并赋值给一个变量
2.通过句柄对文件进行操作
3.关闭文件

文件操作模式:
w:只写
r:只读
a:追加
r+:读写,先读,然后在文件的最后写入
w+:写读,先创建一个文件,写,再读(没什么用)
a+:追加读写
rb:二进制文件读,网络传输都用二进制文件

文件自动关闭
with open() as 文件对象名:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Vergil Zhang


#data = open("yesterday.txt", encoding='utf-8').read()
#print(data)

#获取文件句柄
file = open("PLANET.txt", 'r', encoding='utf-8')
#print(file.write("我爱北京天安门"))            #只是追加内容,在进行其他操作就会报错
#print(file.read())

#读文件
for line in file.readlines():
    print(line.strip())
#low loop method
for index,line in enumerate(file.readlines()):
    if index == 9:
        print('-----------这一行不打印歌词-----------------')
        continue
    print(line.strip())

#推荐
count = 0
for line in file:
    if count == 9:
        print(line)
        count += 1
        continue
    print(line)
    count += 1

print(file.tell())      #打印出句柄的位置,以字符的个数为准
print(file.readline())
print(file.tell())

file.seek(0)        #回到首字符

print(file.encoding)        #文件的编码形式

print(file.fileno())            #文件的编号,操作系统维护,不需要关注

print(file.isatty())            #是否是终端设备

print(file.seekable())          #光标是否可移

print(file.flush())     #缓存中内容刷到硬盘中

#强制刷到硬盘

#模拟进度条
import sys
import time
for i in range(20):
    sys.stdout.write("#")
    sys.stdout.flush()
    time.sleep(0.1)

file.close()
'''
file = open("PLANET.txt", 'a', encoding='utf-8')
file.truncate(10)
file.close()

file = open("PLANET.txt", 'w+', encoding='utf-8')
file.write("lalallalallala........")
file.close()

file = open("PLANET.txt", 'rb')
print(file.readline())
file.close()
'''
file_old = open("PLANET.txt", 'r', encoding="utf-8")
file_new = open("PLANET_after.txt", 'w', encoding="utf-8")
for line in file_old:
    if "我就是你的行星 围绕在你周围" in line:
        line = line.replace("我就是你的行星", "Vergil就是Ann的行星")
    file_new.write(line)
file_old.close()
file_new.close()

#使用自动关闭
with open("PLANET.txt", 'r', encoding="utf-8") as file:
    for line in file:
        print(line.strip())

猜你喜欢

转载自www.cnblogs.com/VergilZhang/p/8973626.html