python文件读写、模块

编码

二进制

  • 用来存放一位0或1,就是计算机里最小的存储单位,叫做【位】,也叫【比特】(bit)。我们规定8个比特构成一个【字节】(byte),这是计算机里最常用的单位。
  • bit位:存放一位二进制数,0或1,最小得存储单位
  • byte字节:8个二进制为1字节,最常用单位

编码表

  • Unicode是内存编码的规范,而UTF-8是如何保存和传输Unicode的手段。

encode()和decode()

  • 编码,即将人类语言转换为计算机语言,就是【编码】encode();反之,就是【解码】decode()

格式

#'编码内容'.encode('使用得编码表')
#'解码内容'.decode('使用得编码表')
print('吴枫'.encode('utf-8'))
print('吴枫'.encode('gbk'))
print(b'\xe5\x90\xb4\xe6\x9e\xab'.decode('utf-8'))
print(b'\xce\xe2\xb7\xe3'.decode('gbk'))

文件读写

开-open()

  • 绝对路径:绝对路径就是最完整的路径;将文件拖入VScode终端可以获得绝对路径
  • 或者右键复制路劲
  • 相对路径:指的就是【相对于当前文件夹】的路径
  • windows系统中\来表示绝对路径,/表示相对路径
  • 格式:文件名=(‘路径’,‘模式’,encoding=‘utf-8’)
  • sumlime text3要绝对路径
open('C:\\Users\\Ted\\Desktop\\test\\abc.txt')
#将'\'替换成'\\'
open('abc.txt')    #相对路径
#相对路径也可以写成open('./abc.txt')
  • ‘r’:表示以读得模式打开文件

模式汇总

r(read,读)r只读,指针在开头文件不存在则报错rb二进制只读,其余同左r+读写,其余同左rb+二进制读写,其余同左
w(write,写)w只写,文件不存在则新建,存在则覆盖wb二进制只写,其余同左w+读写,其余同左wb+二进制读写,其余同左
a(append,追加)a追加,文件存在指针放在末尾,文件不存在则新建ab二进制追加,其余同左a+追加且可读,其余同左ab+二进制追加,且可读,其余同左
  • **‘wb’**的模式,它的意思是以二进制的方式打开一个文件用于写入。因为图片和音频是以二进制的形式保存的,所以使用wb模式就好了

读-read()

直接读取

变量名=文件名.read()

#变量名=文件名.read()
file1 = open('/Users/Ted/Desktop/test/abc.txt', 'r',encoding='utf-8') 
filecontent = file1.read()      
ile1=open('abc.txt','r',encoding='utf-8')#定义文件名
file2=file1.read()#读文件并复制给变量
print(file2)
file1.close()#关闭文件

按行读取

  • 格式:变量名=文件名.readlines()
  • readlines() 会从txt文件取得一个列表,列表中的每个字符串就是文件中的每一行。而且每个字符串后面还有换行的**\n**符号。
  • for循环来遍历这个列表

写-write()

'w’模式

file1=open('abc.txt','w',encoding='utf-8')
file1.write('张无忌\n')
file1.close()
  • ‘w:表示写入文件’
  • 参数为字符串
  • 格式:文件名.write(‘内容’)
  • **‘w’**写入模式会给你暴力清空掉文件
  • **write()**函数写入文本文件的也是字符串类型。
  • 在**'w’’a’模式下,如果你打开的文件不存在,那么open()**函数会自动帮你创建一个

'a’模式

file1 = open('abc.txt', 'a',encoding='utf-8') 
#以追加的方式打开文件abc.txt
file1.write('张无忌\n')     
#把字符串'张无忌'写入文件file1
file1.write('宋青书\n')     
#把字符串'宋青书'写入文件file1
  • 追加模式:增加内容而不是覆盖原来的内容

关-close()

  • 关闭文件
  • 计算机能够打开的文件数量是有限制的,open()过多而不close()的话,就不能再打开文件了。
  • 能保证写入的内容已经在文件里被保存好了。
  • 文件名.close
file1=open('abc.txt','r',encoding='utf-8')#定义文件名
file2=file1.read()#读文件并复制给变量
print(file2)
file1.close()#关闭文件

关键字with

  • 为了避免打开文件后忘记关闭,占用资源或当不能确定关闭文件的恰当时机的时候,我们可以用到关键字with
  • 格式:with open(‘文件地址’,‘读写模式’) as 变量名:
  • 后面编码:encoding=‘utf-8’:如果要文件包括中文要加
# 普通写法
file1 = open('abc.txt','a',encoding='utf-8') 
file1.write('张无忌') 
file1.close()

# 使用with关键字的写法
with open('abc.txt','a',encoding='utf-8') as file1:
#with open('文件地址','读写模式',encoding='utf-8') as 变量名:
    #格式:冒号不能丢
    file1.write('张无忌') 
    #格式:对文件的操作要缩进
    #格式:无需用close()关闭

split():分开字符串

  • 它会按空格把字符串里面的内容分开
  • 最终组合成一个列表
  • 格式:变量1=变量2.split()
file1 = open('score.txt','r',encoding='utf-8') 
file_lines = file1.readlines()
file1.close()

for i in file_lines:   #用for...in...把每一行的数据遍历  
    data =i.split()    #把字符串切分成更细的一个个的字符串
    print(data)        #打印出来看看

join():合并字符串

  • 格式:a.join(b)
  • a:用什么连接
  • b:要组合字符串的列表
a=['c','a','t']
b=''
print(b.join(a))
c='-'
print(c.join(a))

模块

import语句

调用模块

1、导入模块

  • 导入多个模块时:比如import a,b,c可以同时导入“a.py,b.py,c.py”三个文件

2、调用模块时:

  • 使用“模块.函数()”调用模块中的函数
  • 使用“模块.变量”调用模块中的变量
# 这是主程序main.py
# 请阅读代码注释

import test  # 导入test模块

print(test.a)  # 使用“模块.变量”调用模块中的变量

test.hi()  # 使用“模块.函数()”调用模块中的函数

A = test.Go2()  # 使用“变量 = 模块.类()”实例化模块中的类
print(A.a)  # 实例化后,不再需要“模块.”
A.do2()  # 实例化后,不再需要“模块.”

import…as…

  • import story as s语句,意思是为“story”取个别名为“s”

from … import … 语句

  • 从模块中导入一个指定的部分到当前模块
  • 格式:from (模块名) import(指定模块中的变量名/函数名/类名)
  • 效果:导入指定部分可以直接使用,不需要加入‘模块.'前缀
  • 同模块多个指定内容:from xx模块 import a,b,c
  • 模块中指定所用内容分直接使用:**from xx模块 import * **;*代表“模块中所有的变量、函数、类

if name == ‘main

  • Python 模拟的程序入口
#xx.py文件
代码块1...
if _name_ == '_main_':
    代码块2...
#1、当xx.py文件被直接运行时,代码模块2将被运行
#2、当xx.py文件作为模块是被其他程序导入时,戴莫模块2不被执行

scv模块

  • 官方文档:看示例
  • 注意;创建的excel文档是csv格式,另存

格式

  • #参数encoding = 'utf-8’防止出现乱码;一般有中文要加;报错就删或者加

读数据

import csv
with open("C:\\Users\\win10\\Desktop\\code\\.vscode\\python.csv",newline = '')  as f:
    reader = csv.reader(f)
    #使用csv的reader()方法,创建一个reader对象
    for row in reader: 
    #遍历reader对象的每一行
        print(row)
print("读取完毕!")

写数据

import csv
with open("C:\\Users\\win10\\Desktop\\code\\.vscode\\python.csv",'a',newline = '',encoding='utf-8')  as f:
    writer = csv.writer(f)
    writer.writerow([832,134,1,35,5])
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值