博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件操作IO
阅读量:6095 次
发布时间:2019-06-20

本文共 2389 字,大约阅读时间需要 7 分钟。

摘要

文件操作IO

目的

  • 掌握文件操作的一般方法
  • 循环打印文件

内容

文件打开关闭
  • 文件打开 使用open()函数打开文件,创建了一个文件对象,可进行读写
#语法file object = open(file_name [, access_mode][, buffering])参数含义:file_name:访问的文件,注意路径access_mode:打开文件的模式,只读、只写、追加,详情见表buffering:寄存,默认为0,不寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认
模式 描述
r 只读,指针放在文件开头
w 只写、文件存在将其覆盖,否则创建新文件
a 追加,文件存在,指针指向末尾,不存在,创建并写入
b 二进制
w+ 读写,若不存在则创建
r+ 读写
a+ 读写,指向末尾
  • 关闭文件 close()
常见操作
  • write() 任何字符串写入一个打开的文件,不在末尾添加换行符
  • read() 打开的文件中读取一个字符串,全部内容
  • readline 只读一行
  • readlines 读取全部返还是一个列表,元素为每一行
  • tell()方法告诉你文件内的当前位置
  • seek(offset [,from])方法改变当前文件光标的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。
  • os.rename(current_file_name, new_file_name) 重命名
  • remove()删除文件
#例子F = open('1.txt','w+')#写入# F.write('123')# F.write('a')# for循环输出文件全部内容for line in F:    print(line),F.close()#while 方法循环输出文件内容Fw = open('1.txt','rb')while True:    line = Fw.readline()    if not line:        break    print(line),
with open
try:    f = codecs.open('1.txt','r')    print(f.read())finally:    f.close()    等价于with codecs.open('1.txt','r') as f:    print(f.read())    with open 是做了异常处理的一般文件操作的方法

总结

  • 文件io操作的一般方法
  • 循环打印文件内容

习题完成情况

#1. 现有一个文件test.txt ,内容如下:#1234efgh##要求读出文件内容,对内容的顺序进行编辑,然后重新写入到文件,使其为如下形式#12345678#abcdefgh#列表存数据L = []#打开文件写入到一个列表with open('1.txt','r') as f:    for line in f.readlines():        L.append(line)#列表排组合出想要元素print(L)L1 = L[0][:4] + L[1][4:]print(L1)L2 = L[0][4:-1] + L[1][:4]print(L2)#写入文件with open('1.txt','w') as fw:    fw.write(L1 + '\n')    fw.write(L2)#2. 将上周五生成的dict3,排序后写入到文件dict.txt中,要求格式为A 65B 66C 67...x 120y 121z 122#字典dic3dic3 = {'A': 65, 'C': 67, 'B': 66, 'E': 69, 'D': 68, 'G': 71, 'F': 70, 'I': 73, 'H': 72, 'K': 75, 'J': 74, 'M': 77, 'L': 76, 'O': 79, 'N': 78, 'Q': 81, 'P': 80, 'S': 83, 'R': 82, 'U': 85, 'T': 84, 'W': 87, 'V': 86, 'Y': 89, 'X': 88, 'Z': 90, 'a': 97, 'c': 99, 'b': 98, 'e': 101, 'd': 100, 'g': 103, 'f': 102, 'i': 105, 'h': 104, 'k': 107, 'j': 106, 'm': 109, 'l': 108, 'o': 111, 'n': 110, 'q': 113, 'p': 112, 's': 115, 'r': 114, 'u': 117, 't': 116, 'w': 119, 'v': 118, 'y': 121, 'x': 120, 'z': 122}#打开一个文件追加的模式with open('2.txt','a') as f:        #字典的keys、values 排序存入一个list        L1 = sorted(dic3.keys())        L2 = sorted(dic3.values())        print L1        print L2        #写入文件        for i in xrange(0,len(L1)):                f.write('{0} {1} \n'.format(L1[i], L2[i]))

转载于:https://www.cnblogs.com/siaspedro/p/8139066.html

你可能感兴趣的文章
是否该让开发人员跟客户直接交流
查看>>
艾伟_转载:ASP.NET实现类似Excel的数据透视表
查看>>
计算机组成原理-第3章-3.4
查看>>
Spring学习(16)--- 基于Java类的配置Bean 之 基于泛型的自动装配(spring4新增)...
查看>>
实验八 sqlite数据库操作
查看>>
JavaScript json对象与字符串 互转
查看>>
四种简单的排序算法(转)
查看>>
Quartz2D之着色器使用初步
查看>>
多线程条件
查看>>
Git [remote rejected] xxxx->xxxx <no such ref>修复了推送分支的错误
查看>>
Porter/Duff,图片加遮罩setColorFilter
查看>>
黄聪:VMware安装Ubuntu10.10【图解】转
查看>>
Centos 6.x 升级openssh版本
查看>>
公式推♂倒题
查看>>
无法嵌入互操作类型“……”,请改用适用的接口
查看>>
vue实现点击展开,点击收起
查看>>
如何使frame能居中显示
查看>>
0320 《构建之法》前三章观后感
查看>>
关于轮子的想法
查看>>
第k小数
查看>>