python的查漏小知识(3)

双休或者放假期间,我就适合不工作然后学点自己想学的、感兴趣的。[捂脸]

目录

  • 1. map()
  • 2. filter()
  • 3. 异常机制
  • 4. 文件读写
    • 4.1 常见的打开方式
    • 4.2 中文乱码问题
    • 4.3 f.write()与f.writelines()
    • 4.4 f.read()、f.readline()和f.readlines()
    • 4.5 csv文件读写
  • 5. os模块
  • 6. 模块和包

1. map()

map()用于对容器中元素进行映射,省掉了遍历这一步,很方便。
python的查漏小知识(3)_第1张图片

def f(x):
    return x * 2

data = [1, 2]
a = f(data)
print(a)      # [1, 2, 1, 2]

b = map(f, data)
print(b)     # 

c = list(map(f, data))
print(c)     # [2, 4]

# 如果要实现map的功能:
d = []
for i in data:
    y = f(i)
    d.append(y)
print(d)          # [2, 4]
  1. 如果直接用list相乘,是对list中的元素重复,而不是进行映射;
  2. map之后形成的是一个map object。如果要变为list还需要进行转换。

2. filter()

filter()用于对容器中的元素进行过滤处理,同样不用去遍历每个元素。
python的查漏小知识(3)_第2张图片

def f(x):
    return x > 3

data = [2, 5, 6, 9, 3, 2, 1]
a = list(filter(f, data))    
print(a)        # [5, 6, 9]

3. 异常机制

所谓异常机制,就是指程序出现问题时依然可以正确的执行剩余的程序,而不会因为异常而终止程序执行。
我一般用try–except语句,但处理方式有很多,比如:

  1. try–多个except:
    python的查漏小知识(3)_第3张图片
  2. try–except–else:
    如果try没有异常,则执行else,如果try异常,则执行except,不再执行else。
  3. try–except–finally:
    finally无论是否发生异常都会被执行,通常用来释放try中申请的资源。
    python的查漏小知识(3)_第4张图片
    with代码块执行完毕后自动还原进入该代码之前的状态,总能保证资源正常释放。
with open('test.txt', 'r') as f:
	for line in f.readlines():
		print(line)
  1. return语句
    一般不要将return语句放到try、except、else、finally块中,可能会出错,建议放到最后。

4. 文件读写

我知道的不再赘述。

4.1 常见的打开方式

w:文件存在会重写内容;a:文件存在会在末尾追加内容。
python的查漏小知识(3)_第5张图片

4.2 中文乱码问题

在这里插入图片描述
如果有中文,打开文件时要加上 encoding = ‘utf-8’

4.3 f.write()与f.writelines()

  1. f.write()只能将字符串写到文件中
  2. f.writelines()把字符串列表写入,但是不会转行,如果需要换行,要添加换行符。
with open('school/bookcontent/result2/a.txt', 'w', encoding='utf-8') as f:
    s = ['xiaoxi', 'xiaoming']
    f.write(s)    # TypeError: write() argument must be str, not list

with open('school/bookcontent/result2/a.txt', 'w', encoding='utf-8') as f:
    s = ['xiaoxi', 'xiaoming']
    f.writelines(s)      # xiaoxixiaoming

with open('school/bookcontent/result2/a.txt', 'w', encoding='utf-8') as f:
    s = ['xiaoxi\n', 'xiaoming\n']
    f.writelines(s)   
>>> xiaoxi
    xiaoming

4.4 f.read()、f.readline()和f.readlines()

  1. f.read()一次读取文件所有内容;
  2. f.readline()从文件中读取一行内容;
  3. f.readlines()把文件中每一行都作为独立的字符串对象,并将这些对象放入列表返回。
with open('school/bookcontent/result2/a.txt', 'r', encoding='utf-8') as f:
    content = f.read()
    print(content)
>>> xiaoxi  
    xiaoming

with open('school/bookcontent/result2/a.txt', 'r', encoding='utf-8') as f:
    content = f.readline()
    print(content)
>>> xiaoxi

with open('school/bookcontent/result2/a.txt', 'r', encoding='utf-8') as f:
    content = f.readlines()
    print(content)
>>>['xiaoxi\n', 'xiaoming\n']

现在知道为啥用f.readlines()读取文件内容后,要用strip(’\n’)去掉换行符了。

4.5 csv文件读写

我一般用pandas中的pd.read_csv(),但还可以用csv包。

5. os模块

os模块可以帮助我们直接对操作系统进行操作,调用文件、命令等。我总结一些我自己常用的吧。
python的查漏小知识(3)_第6张图片
python的查漏小知识(3)_第7张图片
在这里插入图片描述

6. 模块和包

python的查漏小知识(3)_第8张图片
python的查漏小知识(3)_第9张图片
常用库列表:
Pypingyin: 汉字拼音转换工具
python的查漏小知识(3)_第10张图片
python的查漏小知识(3)_第11张图片
python的查漏小知识(3)_第12张图片
python的查漏小知识(3)_第13张图片
python的查漏小知识(3)_第14张图片
人类知识真真真浩如烟海,你绝对可以找到自己感兴趣的并且愿意主动去学习的东西!加油。最后万物归于一物,学思维比学知识重要。

你可能感兴趣的:(Tips,python,pycharm)