博客
关于我
Python基础:集合与文件操作
阅读量:796 次
发布时间:2023-03-07

本文共 2804 字,大约阅读时间需要 9 分钟。

集合与文件操作指南

集合是Python中的一个重要数据结构,它具备无序性和唯一性,适用于去重和集合运算等场景。本文将详细介绍集合的基本操作以及文件操作的常用方法。

集合操作

集合的定义

集合是Python中使用set关键字创建的无序、不可重复的数据结构。集合中的元素必须是可哈希的(如整数、字符串等),但集合本身不可哈希,因此不能作为字典的键。

集合的创建

创建集合非常简单,直接使用set()函数或{}初始化即可。例如:

set1 = {1, 2, 'abc'}
set2 = {1, 2, 'asd'}
print(type(set1)) # 输出:

元素的增加

集合支持通过add()方法添加元素,或者使用update()方法一次性添加多个元素。update()还可以接受迭代器或字符串等形式。例如:

set1 = {1, 2, 3, 'abc', 'efg'}
set1.add('半江') # 输出:{'半江', 1, 2, 3, 'abc', 'efg', 'asd'}
set1.update('abc') # 输出:{'h', 1, 2, 3, 'abc', '4', 'd', 'efg'}
set1.update([6, 1, 8]) # 输出:{1, 2, 3, 'abc', 6, 8, 'efg'}

元素的删除

集合支持remove()方法删除指定元素(如果元素不存在则报错),pop()方法随机删除一个元素,以及clear()方法清空集合。例如:

set1 = {1, 2, 3, 'abc', 'efg'}
set1.remove('abc') # 输出:{1, 2, 3, 'efg'}
set1.pop() # 输出:{2, 3, 'efg', 'abc'}
set1.clear() # 输出:set()
del set1 # 删除集合

集合的其他操作

集合支持多种集合运算,如交集、并集、差集和对称差集。这些操作可以通过&, |, -, ^等符号或intersection(), union(), difference(), symmetric_difference()方法实现。例如:

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 & set2) # 输出:{4, 5}
print(set1.intersection(set2)) # 输出:{4, 5}

集合还支持判断子集和超集关系。例如:

set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5, 6}
print(set1 < set2) # 输出:True
print(set1.issubset(set2)) # 输出:True
print(set2 > set1) # 输出:True
print(set2.issuperset(set1)) # 输出:True

冻结集合

使用frozenset()函数可以将集合转换为不可变的frozenset对象。例如:

set1 = {1, 2, 3, 'abc', 'efg'}
set2 = frozenset(set1)
print(type(set2)) # 输出:

文件操作

打开文件

在Python中,使用open()函数可以打开文件。文件路径可以是绝对路径或相对路径。open()的常见模式包括:

  • r:读取模式(默认)
  • w:写入模式(若文件不存在则创建,内容会覆盖)
  • a:追加模式(内容会追加到文件末尾)
  • rb/text:二进制模式和文本模式(后者默认编码为gbkutf-8

例如:

f = open('book.txt', 'r', encoding='utf-8')

读取文件

读取文件的方法有多种:

  • f.read():读取全部内容。
  • f.read(n):读取n个字符或字节。
  • f.readline():读取一行内容。
  • f.readlines():读取全部内容并存储为列表。
  • 循环读取:逐行读取文件内容。
  • 例如:

    f = open('book.txt', 'r', encoding='utf-8')
    b = f.read() # 读取全部内容
    f.close()

    写入文件

    写入文件的方法也有多种:

    • f.write():写入字符串内容。
    • f.writelines():写入多个字符串。
    • f.seek():移动文件指针位置。
    • f.truncate():截断文件。

    例如:

    f = open('book.txt', 'w', encoding='utf-8')
    f.write('三两半江')
    f.close()

    追加文件

    使用a模式可以将内容追加到文件末尾。例如:

    f = open('book.txt', 'a', encoding='utf-8')
    f.write('abc')
    f.close()

    混合模式

    使用r+模式可以先读取文件内容,再进行写入操作。例如:

    f = open('book.txt', 'r+', encoding='utf-8')
    print(f.read())
    f.write('abc')
    f.close()

    二进制模式

    使用rb模式读取二进制文件,写入时也需要使用二进制形式。例如:

    f = open('book.png', 'rb')
    b = f.read(6)
    f.close()
    a = 'sanliang半江'.encode('utf-8')
    print(b)
    s = b.decode('utf-8')
    print(s)

    文件操作方法

    file对象提供了丰富的方法,包括:

    • close():关闭文件。
    • fileno():获取文件描述符。
    • seek()tell():移动文件指针。
    • truncate():截断文件。
    • flush():刷新缓冲区。

    文件修改

    如果需要修改文件内容,可以通过以下步骤实现:

  • 创建新文件。
  • 读取原文件内容并修改。
  • 将修改后的内容写入新文件。
  • 删除原文件并重命名新文件。
  • 例如:

    import os
    with open('a.txt', 'r', encoding='utf-8') as read_f, open('.a.txt.swap', 'w', encoding='utf-8') as write_f:
    data = read_f.read()
    data = data.replace('alex', 'SB')
    write_f.write(data)
    os.remove('a.txt')
    os.rename('.a.txt.swap', 'a.txt')

    通过这些方法,可以轻松实现文件的修改和管理。

    转载地址:http://jxofk.baihongyu.com/

    你可能感兴趣的文章
    Python基础之Python环境搭建
    查看>>
    python基础之--面相对象--OOP基本特性
    查看>>
    python基础之--迭代器和生成器及异常处理
    查看>>
    python基础之--包和模块
    查看>>
    python基础之---面向对象--属性和方法
    查看>>
    python基础之---运算符
    查看>>
    python基础之---语句
    查看>>
    python基础之---正则表达式
    查看>>
    python基础之---函数式编程
    查看>>
    python基础之---函数
    查看>>
    Python基础之(一)基本数据类型
    查看>>
    Python基础【os】
    查看>>
    Python基础——面向对象
    查看>>
    Python基础——线程锁
    查看>>
    python基础——线程与进程
    查看>>
    Python基础——构造方法和特殊成员方法
    查看>>
    Python基础——多线程值从Thread类继承
    查看>>
    Python基础——多线程之信号量
    查看>>
    Python基础——_thread多线程
    查看>>
    Python基础——Thread类与线程对象
    查看>>