杂文Python
2.文件操作
文件操作的过程:打开文件获得句柄——>操作文件行(遍历等)——>关闭文件
打开文件获得句柄
比较low的方法: f = open("file_path","r","encoding=utf-8") 操作完后要关闭文件 f.close
高大上的方法:用完自动关闭
with open("file_path", "r" , "encoding=utf-8") as f1,
open("file_path", "r" , "encoding=utf-8") as f2 :
打开方式参数说明:
r : 只能读,一行一行的读
w:只能写,按顺序写,这个参数会创建一个新文件。切记
a:追加,打开一个文件然后,只能从最后面开始写
r+:这个读就是跟r一样,写就是跟a一样。前提是你不移动光标
w+:这个要创建空白文件或覆盖一个同名旧文件。不移动光标读不出任何数据,但是移动光标是闲的蛋疼才去干的事
a+:追加读。无论怎样移动光标,只能追加,但是不移动光标读不出来数据,也是个蛋疼的设计
rb:以二进制格式去读文件,读bytes类型的二进制,或者视频等文件,如果你想看010100101100可以这么干
wb:二进制写,写010110011010进去,传输bytes应该用得到
rU:\r\n变成\n打开,Windows写的可以拿到Linux里面运行了,不过,请问谁会用Windows的记事本去写脚本?除非他觉得自己时间没地方花。
操作文件
读一下光标移动一下, 写一下光标移动一下,想象一下往记事本里写东西的感觉
操作光标:f.tell() 当前光标所在的字符位置(按字符个数)。 f.seek(0) 光标回到起点 , f.seek(10) 光标移到第10个字符。
我感觉我不太会去使用它,复杂的情况下,天知道你的光标会移动到哪里去了。。
读 : f.readline() 读一行,注意是光标所在位置的那一行,第一行光标移动一行
f.readlines() 把整个文件所有字符读进一个列表中,这个。。有可能把内存花光
f.read() 把整个文件所有字符读进一个字符串中,这个。。有可能把内存花光
f.read(5) 读从光标开始的5个字符,不过谁会去用它呢?
写 : f.write(“balabalabalabala”) 写字符串,按顺序写
遍历: 1. 高大上,速度快的方法:
count = 0
for line in f: f是文件句柄,迭代器
print(line)
count += 1
遍历2. 把内存撑爆的方法:自己搞着玩可以
for index,line in enumerate(f.readlines()):
print (index, line)
其他的一些蛋疼的方法:
f.encoding 该文件的编码 | f.fileno()该文件句柄编号,操作系统维护 | f.isatty是不是终端设备文件 |
f.name 文件名字 | f.seekable能不能移动指针 | f.readable 可读? |
f.writable 可写? | f.closed 是否关闭 | f.flush() 缓存满了刷新进硬盘,同步要求高可用 |
f.truncate() 干嘛用?需要查一下 | f.truncate(10) 截断10个 a模式下 |
打印进度条
import sys , time
for i in range(20):
sys.stdout.write(">") 标准输出.控制台
sys.stdout.flush()
time.sleep(0.1)
4.函数
定义
定义的时候可以有*args **kwargs放在最后
def fuc1(x):
x += 1
return x
传值:
关键字参数,位置参数,默认参数,参数组
关键字参数只能放位置参数后面,不知道搞个关键字参数有什么用?谁去用啊?对我来说我直接忽略
默认参数,可以指定,可以不指定,
tuple1 = (1,2,3,4,5,4) # 内部按元祖处理 传参:*tuple1
list1 = [1,2,2,3,4,5] # 内部按元祖处理 传参:*list1
set1 = {1,2,3,4,5,6} # 内部按元祖处理 传参:*set1
dict1 = {"name":"alex","age":22} # 按字典处理 传参:**dict1
5.局部变量全局变量 | 递归 | 高阶函数
局部变量
局部变量: 函数中的形参,{}内的 ,for循环的i等 全局变量就不说了
可以在局部环境中修改全局变量。。。知道就行了。估计我在代码生涯中不会干这种事
递归:看个实例就好了,主要看一看语法,实际跟普通函数的定义是一样的
def calc(n):
if n != 0:
print(n)
return calc(int(n/2))
高阶函数:如果函数的参数也为函数,那它就是高阶函数
abs为求绝对值的函数
def add( a, b, f):
return f(a) + f(b)
res = add(3, -6, abs) 输出结果res=9
杂文Python的更多相关文章
- 技术专题—Python黑客【优质内容聚合贴】
作者:坏蛋链接:https://zhuanlan.zhihu.com/p/24645819来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 一.前言 本着知识分享,聚合优 ...
- Python多线程问题的资料查找与汇总
Python多线程问题的资料查找与汇总 声明: 1)本报告由博客园bitpeach撰写,版权所有,免费转载,请注明出处,并请勿作商业用途. 2)若本文档内有侵权文字或图片等内容,请联系作者bitpea ...
- Python中的多进程与多线程(一)
一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
- 使用Python保存屏幕截图(不使用PIL)
起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...
- Python编码记录
字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...
随机推荐
- POJ1751 Tree 树分治
分析:每次找重心可以发现最多n层,每层复杂度是O(nlogn) 总体时间复杂度是O(nlog^2n) #include <cstdio> #include <cstring> ...
- 【Poj1090】Chain
Chain Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 3414 Accepted: 1126 Description ...
- hdu1814 Peaceful Commission——2-SAT
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1814 第一次的2-SAT,推荐博客:https://blog.csdn.net/jarjingx/arti ...
- EasyUI 取得选中行数据
转自:http://www.jeasyui.net/tutorial/23.html 本实例演示如何取得选中行数据. 数据网格(datagrid)组件包含两种方法来检索选中行数据: getSelect ...
- 使用Advanced Installer14.3 简单打包windows窗体应用程序
1.新建项目工程(我使用的是企业版) 2.完善产品细节 3.应用程序文件夹 a.自动同步文件夹(也可以右键添加文件或文件夹) b.新建卸载快捷方式 c.卸载清理 4.安装参数 5.媒介配置 6.生成或 ...
- Sql生成不重复的数字
-- ============================================= -- Author:TUZI -- Create date: 2016.4.18 -- Descrip ...
- cocos2dx使用lua和protobuf
为了使游戏开发更加方便快捷,我继续了protobuf在lua下的尝试. socket使用的是cocos2dx集成的websocket. 先说下环境:cocos2d-x-2.2.1 + protobuf ...
- BPI-MI1刷Andorid的启动卡之后上网的步骤(以太网&&WIFI)
BPI-MI1刷Andorid的启动卡之后上网的步骤(以太网&&WIFI) 2017/9/19 16:57 01刷Android的默认启动界面.png 02打开英文模式下的设置Sett ...
- droid开发:如何打开一个.dcm文件作为位图?
我目前正在做一个Android应用程序的DICOM 继code打开图片DROM RES /绘制的“ussual”图像格式,但它不与.dcm工作 公共类BitmapView扩展视图 { 公共Bitmap ...
- git reset作用
git reset: 1. 文件从暂存区回退到工作区,撤销add 2. 版本回退 一:文件从暂存区回退到工作区,撤销add 如果想取消某个add的文件,可以使用该命令来进行撤销操作 撤消add:gi ...