Python基础(集合用法、文件操作、字符编码转换、函数)

集合(Set)及其函数

集合是一个无序的、无重复元素的序列。

 1 list = {1, 3, 6, 5, 7, 9, 11, 3, 7}  # 定义集合方式一
 2 list1 = set([1, 3, 6, 5, 7, 9, 11, 3, 7])  # 定义集合方式二
 3 list2 = set()  # 定义一个空集合
 4
 5 print(list1, list)  # 打印后可看到,集合中的元素已自动去重
 6 print(3 in list)  # 判断一个元素是否在集合中,返回bool值
 7 print(20 not in list1)  # 判断一个元素是否不在集合中,返回bool值
 8 list1.add(99)  # 新增元素
 9 list1.update([10, 20, 30, 2])  # 新增多项
10 list1.remove(3)  # 删除一个元素,若元素不存在则报错
11 print(list1.discard(8))  # 删除一个元素,若元素不存在则不做任何操作
12 print(len(list1))  # 计算集合中元素的个数
13 print(list1.pop())  # 从集合中随机弹出一个元素
14 list.clear()  # 清空集合

集合的运算

 1 list1 = set([1, 3, 6, 5, 7, 9, 11, 3, 7])
 2 list2 = set([2, 4, 6, 8, 3, 5])
 3 print(list1, list2)
 4
 5 # 交集
 6 print(list1.intersection(list2))
 7 print(list1 & list2)
 8 # 并集
 9 print(list1.union(list2))
10 print(list1 | list2)
11 # 差集
12 print(list1.difference(list2))
13 print(list1 - list2)
14 # 对称差集
15 print(list1.symmetric_difference(list2))
16 print(list1 ^ list2)
17
18 # 是否为子集 是否为父集
19 list3 = set([9, 11])
20 print(list3.issubset(list1))
21 print(list1.issuperset(list3))
22
23 # 若两个集合的交集为空 返回true
24 list4 = set([20, 30])
25 print(list1.isdisjoint(list4))
26 print(list1.isdisjoint(list2))

文件(File)操作

在开发中经常会有读写文件的需求,相关的代码实现如下:

文件的打开模式

1 open(file, mode=‘r‘, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
mode description
t 文本模式 (默认)。
x 写模式,新建一个文件,如果该文件已存在则会报错。
b 二进制模式。
+ 打开一个文件进行更新(可读可写)。
U 通用换行模式(不推荐)。
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

文件的读操纵、写操作、追加操作、按行读取文件

 1 # read 直接读文件全文
 2 f = open(‘test‘, ‘r‘, encoding=‘utf-8‘)  # 文件句柄
 3 data = f.read()
 4 print(data)
 5
 6 # write 向文件中写
 7 f = open(‘test1‘, ‘w‘, encoding=‘utf-8‘)
 8 f.write(‘我爱北京天安门,\n天安门上太阳升‘)
 9
10 # append 在文件最后追加内容
11 f = open(‘test1‘, ‘a‘, encoding=‘utf-8‘)
12 f.write(‘呀呼嘿‘)
13
14 # loop 按行读取文件
15 # high bigger 将文件作为迭代器 读一行打印一行 内存中只缓存一行
16 f = open(‘test‘, ‘r‘, encoding=‘utf-8‘)
17 count = 0
18 for l in f:
19     if count == 9:
20         print(‘----------‘)
21         count += 1
22         continue
23     print(l.strip())
24     count += 1
25
26 # low loop 将文件内容全部读取至内存,效率低
27
28 f = open(‘Sonnet‘, ‘r‘, encoding=‘utf-8‘)
29 for index, line in enumerate(f.readlines()):
30     if index == 9:
31         print(‘------------‘)
32         continue
33     print(line.strip())

文件的函数

 1 f = open(‘test‘, ‘r‘, encoding=‘utf-8‘)  # 文件句柄 读模式打开文件
 2 print(f.tell())  # 获取当前光标位置
 3 print(f.readline())
 4 print(f.readline())
 5 print(f.tell())
 6 print(f.readline())
 7 f.seek(10)  # 跳转光标到第10个字符
 8 print(f.readline())
 9 print(f.encoding)  # 获取文件编码
10 print(f.fileno())  # i don‘t know what it is
11 print(f.isatty())  # 判断文件是否是tty终端
12 print(f.readable())  # 判断文件是否是可读
13 print(f.writable())  # 判断文件是否是可写
14 print(f.seekable())  # 判断文件是否是可跳转光标 (tty不可跳转
15 f.flush()  # 当用写模式打开文件时 并不是写一句系统就会调用一次io 若需要及时刷新硬盘中的文件内容 可以调用该函数
16 f.close()  # 关闭文件
17 print(f.closed)  # 判断文件是否关闭

文件的修改***

 1 # 文件的修改 直接修改文件本身比较困难 可以将修改写入另一个文件中 如有需求可以再写回文件本身
 2 f = open(‘test‘, ‘r‘, encoding=‘utf-8‘)
 3 f_new = open(‘test.bak‘, ‘w‘, encoding=‘utf-8‘)
 4
 5 for line in f:
 6     if ‘我曾千万次梦见‘ in line:
 7         line = line.replace(‘我曾千万次梦见‘, ‘我不想千万次梦见‘)
 8     f_new.writelines(line)
 9
10 f.close()
11 f_new.close()

一个进度条实例 用于理解flush函数的机制 该实例可以实现进度条效果

1 import sys
2 import time
3
4 f = open(‘Sonnet1‘, ‘w‘, encoding=‘utf-8‘)  # 文件句柄 写模式打开文件 会新建一个文件 若同名文件存在 则直接覆盖
5 for i in range(10):
6     sys.stdout.write(‘#‘)
7     sys.stdout.flush()
8     time.sleep(0.2)

原文地址:https://www.cnblogs.com/summerj/p/10157085.html

时间: 2024-11-12 19:36:53

Python基础(集合用法、文件操作、字符编码转换、函数)的相关文章

python学习笔记-(七)python基础--集合、文件操作&函数

本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: 1 2 3 4 >>> list_1 = [1,4,4,5,6,7,9,10] >>> list_1 =set(list_1) >>> print(list_1) {1, 4, 5, 6, 7, 9, 10} 2)关系测试:测试两组数据之间的关系,交集.并集.

php 字符编码转换函数 iconv mb_convert_encoding比较

在使用PHP处理字符串时,我们经常会碰到字符编码转换的问题,你碰到过iconv转换失败吗? 发现问题时,网上搜了搜,才发现iconv原来有bug ,碰到一些生僻字就会无法转换,当然了配置第二个参数时,可以稍微弥补一下默认缺陷,不至于无法转换是截断,用法如下 iconv(“UTF-8″,”GB2312//IGNORE”,$data) ; 这样碰到生僻字转换失败时,它就会忽略失败,继续转换下面的内容,这算解决问题的一个办法,不过为了确保转换的成功率,我们可以用另一个转换函数(mb_convert_e

Python——day3_基础1_集合,文件操作,字符编码与转码

集合 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 常用操作 s = set([3,5,9,10]) #创建一个数值集合 t = set("Hello") #创建一个唯一字符的集合 a = t | s # t 和 s的并集 b = t & s # t 和 s的交集 c = t – s # 求差集(项在t中,但不在s中) d = t ^ s # 对称差集(项在t或s中,但不会同时

python基础11 文件操作 ,字符编码

主要内容 文件操作 文件操作 打开文件的模式 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读:不存在则创建:存在则只追加内容:] "+" 表示可以同时读写某个文件 r+,可读写文件.[可读:可写:可追加] w+,写读 a+,同a r+:可读可写,若文件不存在,报错:w+: 可读可写,若文件不存在,创建. "U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模

【python基础】之文件操作

一.文件操作的基本流程 #打开文件,得到文件句柄并赋值给一个变量 f = open('小重山','r',encoding='utf-8') #通过句柄对文件进行操作 print(f.read()) #关闭文件 f.close() 二.文件打开模式 r,只读模式(默认).w,只写模式.[不可读:不存在则创建:存在则删除内容:]a,追加模式.[可读: 不存在则创建:存在则只追加内容] "+" 表示可以同时读写某个文件 r+,可读写文件 [可读:可写:可追加] :光标默认在0位置,最后位置开

PHP iconv()编码转换函数用法示例

PHP iconv()字符编码转换函数的用法,iconv()函数,在php5中是内置的,语法格式:iconv("UTF- 8","GB2312//IGNORE",$data) ,//IGNORE的意思是忽略转换错误,如果没有ignore参数,在转换错误时所有该字符后面的字符串都无法被保存..PHP iconv()函数用 法的代码示例: <?php echo $str= '你好,欢迎来到源码爱好者!'; echo '<br />'; echo ico

Python基础【day03】:字符转编码操作

一.概述 说到python的编码,一句话总结,说多了都是泪啊,这个在以后的python的开发中绝对是一件令人头疼的事情.所以有必要要讲讲清楚 二.编码介绍 1.须知: 在python 2中默认编码是 ASCII,而在python 3中默认编码是 unicode unicode 分为utf-32 (占4个字节),utf-16(占两个字节),utf-8(占1-4个字节),所以utf-16 是最常用的unicode版本,但是在文件里存的还是utf-8,因为utf8省空间 在python 3,encod

python基础 字符编码转换

python2 1 #python2上所有的字符编码都需要先decode到unicode,再从unicode encode到目标编码 2 str_utf8 = "我就是我" 3 print("str_utf-8:我就是我:",str_utf8) 4 #将utf-8转换为unicode 5 str_utf8_to_unicode = str_utf8.decode("utf-8") 6 print(str_utf8_to_unicode) 7 #将

python基础知识六 文件的基本操作+菜中菜

基础知识六 文件操作 ? open():打开 ? file:文件的位置(路径) ? mode:操作文件模式 ? encoding:文件编码方式 ? f :文件句柄 f = open("1.txt",mode = 'r',encoding = 'utf-8') print(f.read()) f.close 1.文件操作模式: ? r,w,a(重要) ? rb,wb,ab(次要) ? r+,w+,a+ 1.1 r/w/a 1. r操作: f = open('1.txt','r') pri

Python不归路_文件操作(一)

Python文件操作 Python文件操作的语法是: open(file,mode,buffering,encoding,erros,newline,closefd) 我们先来看下各个参数, file:很明显,输入文件的路径. mode:mode参数有很多  r 以只读方式打开文件,默认参数  r+ 以读写方式打开文件   w 以写入方式打开文件,如果文件存在,先删除原文件,再创建文件:如果文件不存在直接创建  w+ 以读写方式打开文件,如果文件存在,先删除原文件,再创建文件:如果文件不存在直接