python基础学习
一、格式化输出
age = '23'
print('my age is', age, sep='')
#, sep=''不带空格 , end=''不换行
- 占位符
age = '23'
name = 'liman'
print('my age is %s, my name is %s.'%(age,name))
- f-string
i = 12
name = 'liman'
print(f"Hello, {name}.You are {i + 1:.5f}")
二、列表
列表是最常用的 Python 数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
list = ['lis',5.6,[3,‘sh’]]
三、字典
字典的每一个键值key=>value对用冒号分隔,每个对之间用逗号分割:
d = {
key1 : value1,
key2 : value2,
'weight' : '150'
}
四、解压缩
_ :空
*_:多个空格
d = {
'key1' : 'value1',
'key2' : 'value2',
'weight' : '150'
}
a,*_,b = d;
print(a,b)
#结果key1 weight
s = 'value1'
a,*_,b = s;
print(a, b, sep='')
#结果v1
五、is 和==
is判断地址,==判断值
六、循环
while '''条件''':
#执行语句
#else: (break结束 不执行)
#tab
for i in '''元组列表字典字符串 range(len(同前))''':
#执行语句
#else:同上
#tab
循环应用反转字符串
s = 'slkdeds'
l = len(s)
for index in range(l//2):
a = s[index]
s[index] = s[l-index-1]
s[l-index-1] = a
文件处理
1、打开文件,读写数据
r前缀避免转义字符干扰
f = open(r'/Users/mac/desktop/jupyter/32.txt',mode='w', encoding='utf8')
f.write("""name
de""")#多行字符串
f.close()
f = open(r'/Users/mac/desktop/jupyter/32.txt',mode='r')
data = f.read()
2、python的打开方式
r: read,只读模式,只能读不能写,文件不存在时报错。(r+可写)
f.read()读取文件指针会跑到文件的末端,如果再一次读取,读取的将是空格。(字符串)
readline():读一行
readlines():读全部行返回列表
w: 只能写,不能读,文件存在的时候回清空文件后再写入内容;文件不存在的时候会创建文件后写入内容。
a: 可以追加。文件存在,则在文件的末端写入内容;文件不存在的时候会创建文件后写入内容。
b模式是通用的模式,因为所有的文件在硬盘中都是以二进制的形式存储的,需要注意的是:b模式读写文件,一定不能加上encoding参数,因为二进制无法再编码。
3、with管理文件
with open()方法不仅提供自动释放操作系统占用的方法,并且with open可以使用逗号分隔,一次性打开多个文件,实现文件的快速拷贝。
with open('32.txt','r+', encoding='utf8') as f1,
open('323.txt','r+', encoding='utf8') as f2:
4、文件内的指针移动
1.seek(offset,whence): offset代表文件指针的偏移量,偏移量的单位是字节个数
# seek()
with open('36r.txt', 'rb') as fr:
print(f"fr.seek(4, 0): {fr.seek(4, 0)}") # 0相当于文件头开始;1相当于当前文件所在位置;2相当于文件末尾
# fr.seek(0,2) # 切换到文件末尾
fr.seek(4, 0): 3
2.tell(): 每次统计都是从文件开头到当前指针所在位置
# tell()
with open('36r.txt', 'rb') as fr:
fr.seek(4, 0)
print(f"fr.tell(): {fr.tell()}")
fr.tell(): 4
3.read(n): 只有在模式下的read(n),n代表的是字符个数,除此之外,其他但凡涉及文件指针的都是字节个数
# read()
with open('36r.txt', 'rt', encoding='utf-8') as fr:
print(f"fr.read(3): {fr.read(3)}")
fr.read(3): sdf
4.truncate(n): truncate(n)是截断文件,所以文件的打开方式必须可写,但是不能用w或w+等方式打开,因为那样直接清空文件了,所以truncate()要在r+或a或a+等模式下测试效果。它的参照物永远是文件头。并且truncate()不加参数,相当于清空文件。
# truncate()
with open('36r.txt', 'ab') as fr:
fr.truncate(2) # 截断2个字节后的所有字符,如果3个字节一个字符,只能截断2/3个字符,还会遗留1/3个字符,会造成乱码
5、文件修改
1.一次性修改
2.一行一行修改
都是删了旧文件,新文件改名
import os
with open('37r.txt') as fr,\
open('37r_swap.txt', 'w') as fw:
# 循环读取文件内容,逐行修改
for line in fr:
line = line.replace('jason', 'jasonSB')
# 新文件写入原文件修改后内容
fw.write(line)
os.remove('37r.txt')
os.rename('37r_swap.txt', '37r.txt')
print('done...')
标签:文件,fr,python,基础,学习,read,print,txt,open
From: https://www.cnblogs.com/neu71449/p/17764293.html