首页 > 编程语言 >python基础学习

python基础学习

时间:2023-10-14 16:11:47浏览次数:30  
标签:文件 fr python 基础 学习 read print txt open

python基础学习

一、格式化输出

  1. print
age = '23'
print('my age is', age, sep='')
#, sep=''不带空格 , end=''不换行
  1. 占位符
age = '23'
name = 'liman'
print('my age is %s, my name is %s.'%(age,name))
  1. 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

相关文章

  • java基础——枚举类
     枚举枚举对应英文(enumeration,简写enum)。枚举是一组常量的集合。可以这样理解:枚举是一种特殊的类,里面只包含一组有限的特定的对象。枚举的两种实现方式自定义类实现枚举使用enum关键字实现枚举自定义实现枚举不需要提供setXxx方法,因为枚举对象值通常为制度。对枚举对象/属性使用f......
  • Python第二课
    列表是什么?如何增删改查?如何排序?求表长?避免索引错误?一、列表基本操作关键记忆点:用[]表示列表,用逗号分割元素,列表名用复数的名称表示,打印会包含[]、访问列表元素(相当于数组名[])+增删改依次是查找titillates[i],末尾添加dds.append(),  插入jjs.insert(0,"sd"),  删除dellls[0......
  • python with语句
    pythonwith语句with语句的作用with语句是python引入的一种与异常处理相关的功能,可以看作是try...finally语句的简化.with语句常用于对资源进行访问的场景,可以确保在对资源操作过程中不管是否发生异常,都能自动地正常释放资源.with语句的基本语法withexpression[asva......
  • 学习笔记5(第十一章)
    一、知识点归纳(一)知识点整理第十一章EXT2文件系统EXT2是一个完全与LINUX兼容的文件系统,这一章在简要EXT2-EXT4的当前状况之后,又用编程示例各种数据结构与如何进行相关的实现还展示了如何通过虚拟磁盘mount-root来构建基本文件系统,将文件系统的实现分为了三个级别并分别介绍。......
  • 动手学深度学习--卷积神经网络
    frompixiv从全连接层到卷积现在我们给自己一个任务:用神经网络去识别区分出百万级像素的不同图片回顾一下以前:我们是通过多层感知机来实现的,当面对一张图片的时候,我们将其看成一个像素点矩阵,然后将其从二维拉直到一维上,再通过MLP进行训练但是我们这次的任务每张照片具有百......
  • 20211325 2023-2024-1 《信息安全系统设计与实现(上)》第五周学习笔记
    202113252023-2024-1《信息安全系统设计与实现(上)》第五周学习笔记一、任务要求自学教材第11章,提交学习笔记(10分),评分标准如下:1.知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)“我在学***X知......
  • pycharm连接远程服务器,代码成功运行,但一些基本python属性和函数会报红线(例如print)解决
    状况:pycharm连接远程服务器,代码成功运行,但一些常见python属性和方法报红线,例如print。当你在程序中输入print这种基本方法时,pycharm是不会有输入提示的,输入后也会报红线解决方法:将远程服务器中的环境变量添加至pycharm中查出服务器中环境变量:在xshell中输入vim~/.bashrc执......
  • 2023-2024-1 20231421 《计算机基础与程序设计》第三周学习总结
    ------------恢复内容开始------------作业信息作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03作业目标:自学《计算机科学概论》第二章和第三章、《c语言程序设计》第二章作业正文:教材学习内容总结一、《计算机科学概论》1,从信息层出发,分别从二进制数值与......
  • 深度学习模型的基础
    DL与其他模型:深度学习模型是统计学中的“半参数推断模型”的子集。它们通过堆叠多个处理隐藏层来推广人工神经网络,每个层都由许多神经元组成。“深度”之意:“深度”这个词与知识通过连续的表示层被获取的方式有关。工作原理:DL方法基于多层(“深度”)的人工神经网络。不同......
  • 第一次接触计算机语言以及对未来的学习计划
       大家好,我是来自广州某大学的一名计算机初学者,同时也是一名新进小比特,很高兴能和大家在这里相遇,对于怎样学习计算机语言,我相信也有不少的兄弟们会有困感,对此我想在此分享自己的一些愚见。 首先,要制定相定的编程目标,你在学习编程语言的路上能走多远取决于你是否有兴趣去认......