逐行遍历文件:

方法一:一次读入,分行处理: readlines()

缺点:一次读入所有信息,对于大文件来说会消耗很多计算机内存

 fname = input('请输入要打开的文件名称:')
fo = open(fname,"r")
for line in fo.readlines(): #f.readlines()读入所有行,将文件以每行为元素形成列表(每一行都是一个长字符串)
print(line)
fo.close()

方法二:分行读入,逐行处理:直接遍历文件句柄

 fname = input("请输入要打开的文件名称:")
fo = open(fname,"r")
for line in fo: #fo是文件句柄
print(line)
fo.close()

有利于处理极大文件。

实例:自动轨迹绘制用两种方式实现:

注:这段代码用到了eval()函数,所以txt数据文件中不能出现类似060,以0开头的数字,否则会报错“syntaxError: invalid token”

 #Autotrackdraw.py            #方法二
import turtle as t t.setup(800,600,0,0)
t.pensize(5)
t.pencolor("red") #数据读取
f = open("test.txt") #只读方式打开文件为:文件句柄f
l = [] #创建一个空列表
for ch in f: #用for...in.逐一处理每一行
ch = ch.replace('\n','') #遍历字符串,用空字符代替转义符\n
l.append(list(map(eval,ch.split(","))))#将一行字符串以逗号分割形成列表,并对列表的每个元素用eval()函数处理,
print(l) #然后以子列表加入父列表。
f.close()
for i in range(len(l)): #对列表所有元素循环,按参数执行画笔程序。
t.pencolor(l[i][3],l[i][4],l[i][5]) #i[1,2,3,4,5]:
if l[i][1] == 0: #i[0]:行进距离
t.left(l[i][2]) #i[1]:转向判断
else: #i[2]:转向角度
t.right(l[i][2]) #i[3]-i[5]:RGB颜色
t.fd(l[i][0])
t.done()
 #AutotrackdrawV2.py                #方法一
import turtle as t t.setup(800,600,0,0)
t.pensize(5)
t.pencolor("red") with open('test.txt','r') as f1: #用with打开文件,用readlines()读入所有行,以每行为元素生成列表。
list1=f1.readlines()
for i in range(len(list1)):
list1[i]=list1[i].rstrip('\n') #对列表进行遍历,rstrip()去掉每个列表元素的转义符\n
list1[i]=list(eval(list1[i])) #每个列表元素仍然为字符串,用eval()去掉引号,转换为元组,再用list()转换为子列表 print(list1) for i in range(len(list1)):
t.pencolor(list1[i][3],list1[i][4],list1[i][5])
if list1[i][1]==0:
t.left(list1[i][2])
else:
t.right(list1[i][2])
t.fd(list1[i][0])
t.done()

结果:

python:文件的逐行操作的更多相关文章

  1. python文件及目录操作

    python文件及目录操作 读/写文件 新建/打开文件 写入 #举个例子,打开D:\test\data.txt #以写入模式打开文件 #如果test(上级目录)不存在则报错 #如果data.txt(文 ...

  2. python文件的基础操作

    import os print(,'-')) print(os.getcwd()) print(,'-')) print(os.listdir()) print(,'-')) print(os.lis ...

  3. 人生苦短之Python文件的IO操作

    在Python中也有涉及到文件的相关操作,从最简单的文件读取说起 文件读取 file = open('/Users/macbookpro/Desktop/使用教程.txt', 'r', encodin ...

  4. Python文件的读写操作

    Python文件的使用 要点:Python能够以文本和二进制两种形式处理文件. 1.文件的打开模式,如表1:  注意:使用open()函数打开文件,文件使用结束后耀使用close()方法关闭,释放文件 ...

  5. python文件的相关操作

    python 目录 python 1.python文件的介绍 使用文件的目的 Python文件的类型主要有两种:文本文件和二进制文件. 操作文件的流程主要有三步:打开-操作-关闭操作. 2.文件的打开 ...

  6. python 文件和目录操作题库

    1. 把一个目录下所有的文件删除,在所有的目录下新建一个a.txt的文件,并在文件下写入"python"关键字.   解题思路:        1.如果目录存在则切换进入目录    ...

  7. [ Python ] 文件的读写操作

    1. 文件读写操作 读写文件是最常见的 IO 操作, Python 内置了读写文件的函数.在磁盘上读写文件的功能是由操作系统提供的,所以读写文件是请求操作系统打开一个文件对象(通常称为文件描述符),然 ...

  8. python 文件及目录操作

    文件的基本操作 >>> import os #文件操作导入的模块 >>> import os.path >>> os.name #操作系统的类型, ...

  9. python 文件和路径操作函数小结

    1: os.listdir(path) //path为目录 功能相当于在path目录下执行dir命令,返回为list类型 print os.listdir('..') 2: os.path.walk( ...

随机推荐

  1. Learning-Python【10】:函数初识

    一.什么是函数 函数就是代码的一种组织形式,是指将一组语句的集合通过一个名字(函数名)封装起来,要想指向这个函数,只需要调用其函数名即可 函数分为两大类:内置函数 和 自定义函数 二.为何要用函数 减 ...

  2. EmailHelper

    注:个人邮箱发送时需要将邮箱密码设置为邮件授权码 邮件发送帮助类一: public class EmailHelper { /// <summary> /// 发送邮件 /// </ ...

  3. 扩展的GM命令

    命令 说明 例子 .rl all 重载核心所有自定义数据表   .rl item 重载item_template   .backup a 备份Auth数据库   .backup c 备份Charact ...

  4. scala基础学习(一)

    scala学习 scala与java的不同之处: 1.scala中任何一个操作符都是一个方法. s = 1+2;    可以写作:s=(1).+(2) 2.异常捕获采用模式匹配的方式. try { v ...

  5. ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet………

    在照着这里例子学习ssm时,在部署阶段遇到了这个问题“ASM ClassReader failed to parse class file - probably due to a new Java c ...

  6. python 实现杨辉三角(依旧遗留问题)

    1 #! usr/bin/env python3 #-*- coding :utf-8 -*- print('杨辉三角的generator') def triangles(): N=[1] while ...

  7. vue中关于v-for性能优化---track-by属性

    vue中关于v-for性能优化---track-by属性 最近看了一些react,angular,Vue三者的对比文章,对比来说Vue比较突出的是轻量级与易上手. 对比Vue与angular,Vue有 ...

  8. 微信小程序常见问题

    上拉加载与下拉刷新 https://blog.csdn.net/yelin042/article/details/71435628 微信小程序---报错:对应的服务器TLS为TLS 1.0,小程序要求 ...

  9. CUDA 例程

    scalar add #include <thrust/host_vector.h> #include <thrust/device_vector.h> #include &l ...

  10. Spring搭建练习遇到的坑

    1.Error:(7, 23) java: cannot find symbolsymbol: class ProceedingJoinPointlocation: class com.how2jav ...