python基础(第六章)文件读写+算法

2023-11-06

'''
文件读写
1-文件
    1- Python2  File  --  Python3   TextIOWrapper
2- 一定要有file文件路径(路径、文件名、文件格式)  否则
        TypeError: Required argument 'file' (pos 1) not found
    3- fo = open(fileDir)---只读
    4- 路径的写法
        1- fileDir = 'G:/pyTest1.txt'
        2- fileDir2 = 'G:\\pyTest1.txt'
        3- fileDir3 = r'G:\pyTest1.txt'--取消转义
    5- 路径
        1- 绝对路径--根目录开始的   G:/pyTest1.txt
        2- 相对路径 ./当前位置     ../ 上一级
    6- 读模式
        0- 如果该文件不存在会报错!
        1- fo = open(fileDir,'r') ===  fo = open(fileDir)
        2- fo.tell()---从0开始
        3- fo.read(2)----读2个字符
        4- fo.read()--读全部内容
        5- 文件中的换行是2个长度  \n   ‘a\nb’---字符串中是一个
        6- fo.close()--关闭文件
        7- 移动文件指针位置: seek()
            1- 0模式---绝对位置模式   fo.seek(1,0)
            前提:python3 一定在'rb'模式下---二进制模式--非文本文件(图片)

            2- 1模式---当前位置开始移动 fo.seek(移动的位数,模式1)
            移动的位数 正数:向后移   负数:向前移

            3- 2模式---从尾部
                1- fo.seek(-1,2)
                2- 移动的位数 正数:向后移   负数:向前移

            案例:
                fileDir = 'G:/pyTest1.txt'
                fo = open(fileDir,'rb')
                print('读前',fo.tell())
                print(fo.read(2))
                print('读后',fo.tell())
                fo.seek(2,2)
                print('移动后',fo.tell())

        8- readline读取一行
                1- 该方法返回是 print(type(fo.readline()))--  <class 'str'>
                2- 文件指针会做相应的偏移

        9- readlines读取所有行
            1- 该方法返回是 print(type(fo.readlines()))--  <class 'list'>
            区别:
                1- fo.read()----返回str
                2- fo.readlines()---返回是list---每一行是里面一个元素!
            2- fo.read().splitlines()---返回list  而且去掉换行符

    7- 文件写模式:
        1- fo = open(fileDir,'w')
        2- 如果该路径下的文件存在---会清空!
        3- 如果该路径下的文件不存在---会新建!
        4- 在pycharm里面,你执行了fo.write('123')--可以直接写进去
        5- fo.write('123')--返回值---写的字符长度
        6- fo.flush() 强行写入文件
        7- fo.close() 关闭文件会强行写入文件
    8- 追加模式 a
        1- 只是为了在文件末尾追加内容而打开文件
    9- With open 方式
        1- with open(fileDir) as rFile:----rF = open(fileDir)
        2- 可以省略fo.close()
        3- 操作多个文件
'''
'''
seek:
    1- (1,模式)---0模式----绝对位置,从0开始---配套  ‘r’
        处理:文本文件---txt、log ----返回--str
        
    2- (1,模式)---1模式----当前位置,开始
        文件打开的模式一定是  rb---  读二进制(bin)---.pcap格式文件用rb模式打开
    3- (1,模式)---2模式----尾部位置,开始---rb---  读二进制(bin)
    
windows --文件里面的换行--\r\n    2个长度     '\n'---一个    linux-一个

'''
# fileDir = 'G:/pyTest1.txt'
# fileDir2 = 'G:\\pyTest1.txt'
# fileDir3 = r'G:\pyTest1.txt'#取消转义 r
# fo=open(fileDir3,'r')#file object
# # print(fo)
# # print('当前文件指针位置: ',fo.tell())
# # print(fo.read(2))#r 模式   返回值 str
# # print('当前文件指针位置: ',fo.tell())
# # fo.seek(-1,1)#0 模式---默认0模式
#
# # print(fo.readline())#读一行
#
# # print(fo.readlines())#返回什么类型---list
# # for one in fo.readlines():
# #     print(one.replace('\n',''))
# # print(type(fo.read()))
# print(fo.read().splitlines())#去换行符---list
# print('当前文件指针位置: ',fo.tell())
#
# fo.close()#关闭


fileDir3 = r'G:\pyTest1.txt'#取消转义 r
fo=open(fileDir3,'r+')#file object
fo.write('ABC')#里面写字符串  只是写到内存里面,并不是写到磁盘里

fo.flush()#刷新写入

fo.close()#关闭

with open(fileDir3) as fo,open('','w') as fo2:#可以操作多个文件   2、可以省略close()
    print(fo.read())
    fo2.write('')

print('over')


'''
算法
1-嵌套循环
2-列表生成式:
    1-aftertax=[one*0.9 for one in beforetax]
    2-aftertax=[循环体 for语句]
3-alist.sort(默认正序)   alist.sort(reverse=True)
4-冒泡排序:
    1-确认要排序的对象:alist--升序 / 降序
    2-思维分解:
        1-每一次找一个最大值
            1- 找7 -对比 len -1
                1- [3,1,7,0]
                2- [1,3,7,0]
                3- [1,3,0,7]
            2- 找3 对比 len -2  2次
                1- [1,3,0,7]
                2- [1,0,3,7]
                
            3- 找1     对比 1次
                1- [1,0,3,7]
                2- [0,1,3,7] 
            alist = [3,1,7,0]
            for i in range(0,len(alist)-1):# 0 1 2 左含右不含!!!---找最大值的次数
                for j in range(0 , len(alist)-i-1):#对比次数
                    if alist[j] > alist[j+1]:
                        alist[j],alist[j+1] = alist[j+1],alist[j]
            print(alist)            
5-思维扩展
    1- alist = [3,1,7,0]
    2- 每一次找一个最小值 不使用---min()------假设法
    3- data = [] ------ data.append(最小值)
    **  每一次找到 最小值要记得删除!
    a ,b = 3,4 

'''

'''
核心思路:
    1- 每一次找一个较大值
    2- 相邻元素比较!

1- 找3次较大值---最一个不就是最小值
2- 过程:
    1- 找第1个较大值---8---交换了3次
        1- [8,2,6,0] ----  8  和 2 比较  -- 8大-  交换位置--[2,8,6,0]
        2- [2,8,6,0] ----  8  和 6 比较  -- 8大-  交换位置--[2,6,8,0]
        3- [2,6,8,0] ----  8  和 0 比较  -- 8大-  交换位置--[2,6,0,8]
    2- 找第2个较大值---6---交换了2次
        1- [2,6,0,8] ----  2  和 6 比较  -- 6大-  交换位置--[2,6,0,8]
        2- [2,6,0,8] ----  6  和 0 比较  -- 6大-  交换位置--[2,0,6,8]
    3- 找第3个较大值---2---交换了1次
        1- [2,0,6,8] ----  2  和 0 比较  -- 2大-  交换位置--[0,2,6,8]
'''
# boys  = ['Mike','Jack','Tom']
# girls = ['Lisa','Linda','Mary']
#
# for girl in girls:
#     for boy in boys:
#         print(girl ,boy)


# for i in range(1,10):#行
#     for j in range(1,i+1):
#         print('{}x{}={}'.format(j,i,i*j),end='\t')
#     print()#换行
#
# beforetax=[10000,15000,8000,4000,5000]
# aftertax=[]
# for one in beforetax:
#     aftertax.append(one*0.9)
#
#
#
# aftertax=[one*0.9 for one in beforetax]#缩写
#
# print(aftertax)

# alist = [8,2,6,0]  #0 2 6  8
# #1- 找n-1次较大值
# #2- 相邻元素比较
#
# #1- 找几次较大值 n-1
# for i in range(0,len(alist)-1):#8 --    0    #次数 6 ----1
#     #2- 对比交换
#     for j in range(0,len(alist)-1-i):#次数
#         if alist[j] > alist[j+1]:
#             alist[j],alist[j+1] = alist[j+1],alist[j]
#
# print(alist)


#
# a = 1
# b = 2
# print(a,b)
# a,b=b,a
# print(a,b)
# 只要非零数值   非空字符串、非空列表。非空元组 都位True
if ' ':
    print('条件满足')

# alist.sort(reverse=False)
# # alist.reverse()#倒序
# print(alist)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python基础(第六章)文件读写+算法 的相关文章

  • 【python基础】猜数字游戏

    前言 相信很多人都玩过猜数字游戏 游戏规则也十分简单 还记得小时候我经常和朋友一起玩 我们在桌上摆放一些1 100以内的数字卡片 一个人随机抽取一张卡片 这里不许偷看卡片内容 首先这个人随机猜一个数字 然后其他人会告诉你猜大了还是猜小了 先
  • python字符串中所有符合条件的索引

    使用re库中的finditer import re s 1111ah11111ah test re finditer ah s print i for i in test
  • Python基础-- 9函数(中)

    一 函数的返回值 返回值就是函数执行以后返回的结果 通过return来指定函数的返回值 return后面可以跟任意对象 返回值甚至可以是 个函数 二 文档字符串 在定义函数时 可以在函数内部编写文档字符串 文档字符串就是对函数的 说明 he
  • 基础知识汇总(python)

    1 注释 单行注释 多行注释 2 换行 total applePrice orangePrice milkPrice 3 变量 111 赋值给了 a a 111 变量名规则 字母 数字 下划线组成 数字不可以开头 不能关键字重用 变量名必须
  • 【Python 1-10】Python手把手教程之——一篇讲透if语句以及if语句的特殊用法

    作者 弗拉德 来源 弗拉德 公众号 fulade me if 简单示例 假设你有一个汽车列表 并想将其中每辆汽车的名称打印出来 对于大多数汽车 都应以首字母大写的方式打印其名称 但对于汽车名 bmw 应以全大写的方式打印 下面的代码遍历一个
  • 在eclipse下单步调试python

    在eclipse下可以单步调试python的方法 1 右键单击标尺栏添加断点 2 将鼠标移至需要添加断点的代码行 使用快捷键 Ctrl F10 在弹出的菜单栏中选择 Add Breakpoint 添加断点 添加好断点后 选择 Debug A
  • 树结构,二叉树,hash树

    目录 1 树的概念 2 二叉树基本操作 3 hash树 1 树的概念 1 树的特性 1 一棵树中的任意两个结点有且仅有唯一的一条路径连通 2 一棵树如果有n个结点 则它一定有n 1条边 3 在一棵树中加一条边将会构成一个回路 2 二叉树 1
  • 三、Python基础(高级变量类型篇)

    三 Python基础 高级变量类型篇 目录 三 Python基础 高级变量类型篇 一 列表 list 1 列表的定义 2 列表的常用方法和操作 对象 方法名 参数 3 for in对列表迭代遍历 4 利用 for in 的输出技巧 5 se
  • 零基础小白入门Python,值得看的几本书籍

    Python目前是全球4大流行编程语言之一 根据今年TIOBE最新排名 Python已超越C 与Java C C 一起成为全球前4大最流行语言 指数变化一直呈现出上升的趋势 TIOBE最新排名 众所周知 Python应用广泛 涵盖后端开发
  • 吴恩达机器学习笔记:手搓线性回归(梯度下降寻优)

    概念就不介绍了 记录下公式推导和代码实现 以及与最小二乘的比较 吴恩达老师课程中使用一个参数theta保存两个变量 不过我好像没把中间变量的形状对齐 所以最后实现了两个参数的版本 代码 import time import numpy as
  • 职场上会用Python的人到底有多牛?

    这个人工智能崛起的时代 似乎人人都在聊 Python 从硬件的芯片层面 物联网 一路杀到云端 大数据 人工智能这些炙手可热的领域 无论什么领域 只要它需要编程 都会有Python的身影 下面就和大家一起来聊聊 Python 的好 到底它牛在
  • Python-字典:键值对的魔法世界

    深入理解Python字典 键值对的魔法世界 在Python中 字典 Dictionary 是一种强大且常用的数据结构 它允许我们存储和组织键值对 Key Value 数据 与列表和元组不同 字典中的数据是无序的 但每个数据都与一个唯一的键相
  • Python入门:什么是爬虫,怎么玩爬虫?

    python爬虫入门 什么是爬虫 怎么玩爬虫 看到这两只爬虫没有 两只爬虫 两只爬虫 跑得快 跑得快 一只没有 不好意思 跑题了 别误会 今天不是要教你怎么玩上面这两只沙雕玩意 今天 我们正式从0到1 轻松学会 python 爬虫 接下来
  • 保姆级python入门教程(非常详细),从零基础入门到精通,从看这篇开始!

    一 初聊Python 文末有惊喜福利 1 为什么要学习Python 在学习Python之前 你不要担心自己没基础或 脑子笨 我始终认为 只要你想学并为之努力 就能学好 就能用Python去做很多事情 在这个喧嚣的时代 很多技术或概念会不断兴
  • python--socket(套接字/插口)

    socket是什么 是进程间通信的一种方式 它与其他进程间通信的一个主要不同是 它能实现不同主机之间的进程通信 我们网络上各种各样的服务大多都是基于socket来完成通信的 例如我们浏览网页 qq聊天 收发emil Socket是应用层与T
  • 【Python】PyCharm中调用另一个文件的函数或类

    欢迎来到Python专栏 PyCharm中调用另一个文件的函数或类 o o 嗨 我是小夏与酒 博客主页 小夏与酒的博客 该系列文章专栏 Python学习专栏 文章作者技术和水平有限 如果文中出现错误 希望大家能指正 欢迎大家关注 目录 Py
  • python--- end=“ , 单独的一行print()是什么意思

    有如下一道练习题 编写代码打印出下列图形 代码如下 for i in range 4 for j in range 5 print end print 其中end 意思是为末尾end传递一个空字符串 这样print函数不会在字符串末尾添加一
  • Python中的None

    一 None None是python中的一个特殊的常量 表示一个空的对象 数据为空并不代表是空对象 例如空列表 等都不是None None有自己的数据类型NontType 你可以将None赋值给任意对象 但是不能创建一个NoneType对象
  • python---collections模块

    目录 namedtuple 具名元组 deque 双端队列 OrderedDict 有序字典 defaultdict 默认值字典 Counter 计数 在内置数据类型 dict list set tuple 的基础上 collections
  • python基础之数据类型知识(1)

    注释 注解 解释 说明文字而已 特征 注释只是用于说明的文字不会影响内容本身 作用 1 用于添加说明文字 方便阅读 2 用于调试程序 排查错误 分类 单行注释 多行注释 内容 或者 内容 代码 print hello world print

随机推荐

  • unity 监测UI EventTrigger事件

    如果想控制 只是监听点击一次 设置Image的 Raycast Target 的bool值 这样子就不用反复的注销 注册监听了 注销只在销毁的时候 EventTrigger的所有事件类型 PointerEnter 0 鼠标进入 Pointe
  • DAY10栈与队列:232 用栈实现队列

    一 232 用栈实现队列 class MyQueue public stack
  • Java JDK1.8中类常量池、运行时常量池、字符串常量池所处区域

    类常量池 诞生时间 编译时 所处区域 方法区 类常量池存在Class文件中 一个Class文件对应一个类常量池 储存内容 符号引用和字面量 字符串常量池 诞生时间 编译时 所处区域 堆 储存内容 堆内的字符串对象的引用和字符串常量 运行时常
  • untiy AVProVideo 判断视频是否加载完成,可以播放

    我的插件版本是5 3 不同版本API可能会不同 如果一开就跳转视频 会因为视频没有加载完 导致跳转失败 因此必须等待视频加载完再进行跳转 可以直接等一小会再跳转 但是如果固定等待时间的话 一是每个视频加载耗时不一样 不能精确控制 而是由明显
  • 线性表的顺序结构,C语言实现

    线性表的顺序结构 C语言实现 include
  • C++中operator关键字(重载操作符)

    C 中operator关键字 重载操作符 C 编程语言中重载运算符 operator 介绍 C 编程语言中赋值运算符重载函数 operator 介绍 operator operator operator 操作符重载 参考 C 编程语言中赋值
  • 后端即服务BaaS

    Bmob LeanCloud 腾讯TAB APICloud 作为移动开发者 你应该了解Baas 后端即服务 移动端免费可用的BaaS接入方案 通过Bmob Android轻松制作一个APP Android高效率编码 第三方SDK详解系列 二
  • Multi-Object Tracking with Multiple Cues and Switcher-Aware Classification 论文笔记

    Multi Object Tracking with Multiple Cues and Switcher Aware Classification 似乎是商汤投 CVPR2019的论文 文中提出了一个统一的多目标跟踪 MOT 框架 学习充
  • MFC实现图片浏览器

    MFC实现图片浏览器 源代码可以加微信 DDDDYKAJ 一 功能介绍 该程序是基于对话框的图片管理的程序 改程序有以下几个功能 1 获取加载图片的图片数目 2 按下 下一张 浏览所有图片 3 图片按照序号定位 并显示 4 获取每一张图片的
  • 前端练习项目

    30 Web Projects 30 多个带有 HTML CSS 和 JavaScript 的 Web 项目 由 Packt Publishing 提供 https github com PacktPublishing 30 Web Pro
  • Greenplum 查看连接与锁信息数据字典

    Greenplum 查看连接与锁信息数据字典 目录 查看系统中会话 连接 SQL与锁情况 1 查看当前活动的客户端连接数 2 查询客户端连接的情况 3 查看持有锁和等待锁的一些信息 已经修改验证 4 查询系统中正在执行的或者等待执行的事务
  • 怎么给word文档注音_怎么为整篇word文字添加拼音标注

    类型 教育学习大小 21 8M语言 中文 评分 10 0 标签 立即下载 有时候一篇文章时给小朋友或者中文初学者看的 那么怎样给整篇文章每个字批量添加拼音标注呢 下面小编就来教一下大家 由于对word宏命令不太熟悉 我将个任务分解为三部分
  • 使用Opencv+Python的AR小demo

    摘要 浅浅了解一下 Python OpenCV 试着给自己的 iphone 8 做一下相机标定 github 源码 https github com aeeeeeep OpenCvArDemo 定义 增强现实 AR 是一种真实世界环境的交互
  • java 读取svg_Java Batik操作SVG,实现svg读取,生成,动态操作

    SVG在现在的应用场景中还是很常见的 例如绘制复杂的矢量图形 说到SVG 就不得提下Canvas 在这里我就不详细列举它们之间的不同之处 以及为什么要选择SVG或Canvas了 首先 我的项目是一个Maven项目 所以只需要导入batik的
  • Vuex的简单使用--累加器

    简介 Vuex 是一个专为 Vue js 应用程序开发的 状态管理模式 它采用集中式存储管理应用的所有组件的状态 并以相应的规则保证状态以一种可预测的方式发生变化 安装 在项目根目录执行如下命令来安装 Vuex依赖包 npm install
  • Windows10通过局域网共享文件的方法

    要实现局域网共享 必须两台电脑必须在同一个网段 就是要同时连接同一个路由器 两台电脑最好都使用以下设置 在主电脑和需要复制文件的电脑中 点击 开始 菜单 选择 设置 打开后点击 网络 选择共享中心 在主电脑中需要共享的文件夹中做以下设置 要
  • ROS STAGE教程2(地图定义和GMAPPING建图)

    目前用在ROS Kinetic上的stage版本为4 1 官方教程http rtv github io Stage modules html 用户可以用stage或者gazebo来创建地图和机器人 传感器模型来进行仿真 并与自己的SLAM模
  • 在运行hive时报错 权限问题

    在运行hive时报错 tmp hive on HDFS should be writable Current permissions are rwx 这是 tmp hive文件夹权限不够 须要提升权限 操作例如以下命令就可以解决这个问题 h
  • R语言如何导入数据

    在使用R的时候 我们肯定需要导入数据 现在总结一下如何导入不同类型的数据 1 使用键盘输入数据 在导入数据比较少的时候 我们使用这种方法 R中的函数 edit 会自动调用一个允许手动输入数据的文本编辑器 具体步骤如下 1 创建一个空数据框
  • python基础(第六章)文件读写+算法

    文件读写 1 文件 1 Python2 File Python3 TextIOWrapper 2 一定要有file文件路径 路径 文件名 文件格式 否则 TypeError Required argument file pos 1 not