python入门之排序,文件操作
排序
li.sort() 对li列表从小到大排序,直接更新li列表
sorted(li) 返回一个li排序后的列表,并非直接对li作更新
列表元素必须是同一种数据类型
文件操作
打开文件:
f = open(文件名,模式,编码)
以某种方式某种编码打开某文件,会返回一个对象(文件名最好写绝对路径,默认只读模式r)
模式:
r 只读,默认。读取的是字节,默认以utf-8编码转换成字符串,所以取得的是字符串,也可以自己设置编码。有中文的话可能要设置utf-
w 只写,不可读。文件不存在则自动创建,文件存在则会自动把文件清空,只要以只写打开,就会清空文件。
x 只写,不可读。文件不存在则自动创建,文件存在直接报错
a 追加,不可读。文件不存在则自动创建,文件存在则追加 rb 只读。读取的是字节,取得的数据也是字节。不用设置编码
wb 只写。写入字节,写入的话,必须将写入的字符串转换为字节,然后再写入
xb 同上
ab 同上 r+ 读写。读文件read(),会有一个指针,第一次读,指针在第一行行首,读完之后指针会移到最后(读到哪儿,指针移到哪儿),每次读都是读的指针以后的数据,这时写入数据,指针依然往后排,这时读取的话,是空的。不管开始指针的位置在哪儿,只要写入,那么只能追加在最后,指针也会移到最后(r+的写是追加在末尾)
w+ 写读。打开文件时已先清空文件,然后再写,接着再读,读的是刚才写的数据,但是写了之后,指针跑到末尾了,所以在读之前需要调整指针的位置
x+ 写读。和w+差不多,只是如果文件存在,则会报错
a+ 写读。打开文件的同时,已经将指针移到最后了 r+b 以二进制读写
w+b
x+b
a+b
指针操作:
f.tell() 返回指针的位置,为0表示起始位置,返回的数字是按字节排的,指针在第多少个字节后就是返回值。返回3,表示在第一个汉字之后。
f.seek(0) 将指针移到起始位置,也可以移动到其他位置,根据里面传的数字
读取、关闭文件:
data = f.read() 读取文件,默认全部读取,加参数数字,就读取多少个字符
f.close() 如果不执行这条关闭,当代码写入数据后,程序还没执行完,再重新修改文件内容,那么其他程序来读取文件时就读的是后面修改后的内容,然后程序执行完后,再去读取文件,读取的是开始写入的内容(因为程序没终止,写入的内容还在内存里,当程序终止了就写入文件里了)
f.flush() 刷新文件内部缓冲区。当写入数据时,是写在内存里的,在程序执行完后才写入文件里,而这个函数是将内存里的数据直接加载写到文件里,即使程序还在运行当中 f.readline() 仅读取一行数据
f.truncate() 截取指针前的数据,后面的都删掉 for line in f:
print(line)
一行一行的读取所有数据,这样避免文件太大,导致内存不足 with open("filename","r") as f:
f.read()
不用close,会自动close with open("file1") as f1,open("file2") as f2:
pass
同时打开两个文件(这个功能在2.7及2.7以后版本才有)
作用:拷贝一个很大很占内存的文件到另一个文件,一般都是把这个文件先放到内存里,然后再拷到另一个文件。用with同时打开两个文件,一个为源文件,以只读打开,另一个新文件,以只写打开,这样就可以一行一行的从源文件拷到新文件里
拷贝过程:
for line in f1:
f2.write(line)
python入门之排序,文件操作的更多相关文章
- python入门三:文件操作
一.文件操作 1.文件对象:和c一样,要想对一个文件进行操作,需要获取该文件的对象 f = open("xxx") # 打开文件并获取文件对象 f.xxx # 对文件进行某些操作 ...
- Python 入门基础7 --文件操作
今日目录: 一.文件处理 1.什么是文件 2.为何用文件 3.如何用文件 4.文件操作 5.常用方法 6.文件内指针的移动 7.with的使用 一.文件处理 1. 什么是文件 文件是操作系统为用户/应 ...
- python入门学习:3.操作列表
python入门学习:3.操作列表 关键点:列表 3.1 遍历整个列表3.2 创建数值列表3.3 使用列表3.4 元组 3.1 遍历整个列表 循环这种概念很重要,因为它是计算机自动完成重复工作的常 ...
- python函数基础 与文件操作
函数的定义 函数是通过赋值传递的,参数通过赋值传递给函数.def语句将创建一个函数对象并将其赋值给一个变量名,def语句的一般格式如下: def function_name(arg1,arg2[,.. ...
- Python之旅Day3 文件操作 函数(递归|匿名|嵌套|高阶)函数式编程 内置方法
知识回顾 常见五大数据类型分类小结:数字.字符串.列表.元组.字典 按存值个数区分:容器类型(列表.字典.元组) 标量原子(数字.字符串) 按是否可变区分:可变(列表.字典) 不可变(数字.字符串.元 ...
- Python基础-week03 集合 , 文件操作 和 函数详解
一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...
- Python基础7:文件操作
[ 文件操作] 1 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: 昨夜寒蛩不住鸣. 惊回千里梦,已三更. 起来独自绕阶行. 人悄悄,帘外月胧 ...
- Python 第三天 文件操作(2)
文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开 文件句柄 = file('文件路径', '模式') 注:python中打开文件有两种方式,即:open(...) 和 fi ...
- python学习笔记4(文件操作)
文件操作: 1.f=open(”caidan”,”w”,encoding=”utf8”) 直接打开一个文件,如果文件不存在则创建文件 f.close() 2.with open (”caid ...
随机推荐
- iap 应用内购买相关的解释
应用范围app Store Review Guidelines : https://developer.apple.com/app-store/review/guidelines/ 中 11.12 ...
- codeforces B. Roma and Changing Signs 解题报告
题目链接:http://codeforces.com/problemset/problem/262/B 题目意思:给出 n 个数和恰好一共要做的操作总数k.通过对n个数进行k次操作,每次操作可以把a[ ...
- IntelliJ IDEA 2016.1注册码
IntelliJ IDEA 2016.1刚发布不久,破解注册的方法是在太少,15的注册URL也不管用,真是很头疼... 幸好发现一枚注册码,感谢sanshi的奉献精神!!! 原文链接: http ...
- gitblit安装使用
1.下载地址 http://www.gitblit.com/ 2.安装jdk(自行安装) 3.解压gitblit # tar -zxvf gitblit-1.8.0.tar.gz 4.配置# cd g ...
- JAVA基础细谈
JAVA基础细谈 一. 源文件和编译后的类文件 源文件的本质就是程序文件,是程序员编写,是人看的.而编译后的类文件是给电脑看的文件.一个类就是一个文件,无论这个类写在哪里,编译以后都是一个文件 ...
- 记录用到的一些linux命令和疑难解决
1. 用gedit打开.bashrc larry@larry-Rev:~$ sudo gedit ~/.bashrc 2. ubuntu里安装软件有点像iOS里的Cydia,要添加软件源来在Ubunt ...
- 并不对劲的bzoj5322:loj2543:p4561:[JXOI2018]排序问题
题目大意 \(T\)(\(T\leq10^5\))组询问 每次给出\(n,m,l,r\),和\(n\)个数\(a_1,a_2,...,a_n\),要找出\(m\)个可重复的在区间\([l,r]\)的数 ...
- Java并发之synchronized
Java多线程同步关键词是常用的多线程同步手段.它可以修饰静态类方法,实例方法,或代码块.修饰static静态方法时是对整个类加锁. 一.实现原理 在JVM中对象内存分三块区域,对象头.实例数据.对齐 ...
- Python复习 基础知识
动态语言:变量类型不固定称之为动态语言 什么是动态语言呢? 可以简单的理解为直接被解释执行的语言称为动态语言. 而需要编译环境将程序转换为其它的编码再执行的语言称为静态语言. 当前静态语言有:jav ...
- 1.22-1.24 Oozie企业使用案例
一.将hive的表数据用sqoop抽取到mysql 1.编写oozie workflow和Coordinator ## [root@hadoop-senior oozie-apps]# pwd /op ...