1. 程式人生 > >python學習筆記——(三)文件操作

python學習筆記——(三)文件操作

二進制 nbsp move line 其他 終端設備 env dex 位置

·集合操作及其相應的操作符表示
集合中沒有插入,只有添加,因為畢竟無序
#!/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())

python學習筆記——(三)文件操作