Python如何删除文本文件删除空格的某一段

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 25, 距离下一级还需 175 积分
论坛徽章:0
注明:不可能用全部读进文件的方式来做,因为所要操作的文本文件太大了。
白手起家, 积分 76, 距离下一级还需 124 积分
论坛徽章:0
fileHandle=open(&filename&,'r')#打开文件
fileList=fileHandle.readlines()#每行都读出,放到列表中
随便怎么操作,append,remove.....
完事后把列表写回文件
至于你说的不读取整个文件....额,有这个功能吗?没听说啊
家境小康, 积分 1891, 距离下一级还需 109 积分
论坛徽章:0
用迭代的方法应该是不需要全读进内存的吧……a = open('1.txt')
for line in a:
& & print line复制代码不行的话,如果知道位置,可以seek到那里删除……
腰缠万贯, 积分 9015, 距离下一级还需 985 积分
论坛徽章:0
seek到那里你打算怎么删除?
家境小康, 积分 1891, 距离下一级还需 109 积分
论坛徽章:0
luffy.deng
& & 嗯,确实啊,没考虑到这点……看来 seek 的方法是不行的了……
& & 上面说的迭代的办法,如果我没记错的话,应该还是可以用的。
小富即安, 积分 3062, 距离下一级还需 1938 积分
论坛徽章:0
可以一行一行的读,然后往结果文件里面写,不要写要删除的那些行。。。
白手起家, 积分 76, 距离下一级还需 124 积分
论坛徽章:0
这个方法应该可以:
为了省事,代码没加异常控制,只写个大概流程
知道要删除行的行号:import os
DELNUM=2& &&&
i=1& && && &
openFileHandle=open('filename','r')
writeFileHandle=open('Temp','w')
while 1:
& & line=openFileHandle.readline()
& & if line:
& && &&&if i==DELNUM:
& && && && &i=i+1
& && && && &print &找到%d行:%s&%(DELNUM,line)
& && && && &continue
& && &&&else:
& && && && &i=i+1
& && && && &writeLine='%s\n'%line
& && && && &writeFileHandle.write(writeLine)
& & else:
& && &&&print &匹配%d行失败,文件已到末尾&%DELNUM
& && &&&break
openFileHandle.close()
writeFileHandle.close()
os.remove('filename')
os.rename('Temp','filename')
print &All Done!&复制代码代码介绍,从DELNUM行开始:
#要删除行的行号,假设为2
#设个计数器,计录当前到了第几行
#打开要操作的文件
#新建一个中间文件,用于写入除第2行的所有行
#进入主循环
#如果文件没到末尾,并且当前记录的行号不是要删除的行号,将该行写入Temp
#如果是要删除的行,打印行号及该行内容,不写入Temp,进入下一循环
#如果读到文件末尾,跳出主循环
#关闭文件句柄
#用Temp文件替换filename,得到删除了DELNUM行的文件
知道要删除行的某一特征:
将1中的行号判断改成正则表达式,匹配成功,不写入Temp
不成功,写入Temp,其他一样
白手起家, 积分 76, 距离下一级还需 124 积分
论坛徽章:0
额,我调试程序了,没注意6楼给出思路了
白手起家, 积分 25, 距离下一级还需 175 积分
论坛徽章:0
嗯,感觉还是没什么好办法,因为该文件很大,而且一直在动态增加,全部读出来肯定不现实,因为要每小时执行一次,把不合法的数据行从文件中清除出去;
而且不能用存另外一文件的方式,因为该文件是不能动的。
小富即安, 积分 3062, 距离下一级还需 1938 积分
论坛徽章:0
可以一行一行的读,然后往结果文件里面写,不要写要删除的那些行。。。
t6760915 发表于
& & 补充下,如果你一行一行的写文件比较慢可以增加一个列表,把需要写的行append到这个列表中,当这个列表长度大于比如说5000行时,开始往结果文件中写,写完清除下这个列表。如此循环往复,最后等源文件到达最后一行时,再写下结果文件就可以了。Python如何删除文本文件的某一段_百度知道
Python如何删除文本文件的某一段
比如删除几个字什么的...
比如删除几个字什么的
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采纳数:125
获赞数:279
循环使用replace删除
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。python 修改文件内某一行的操作 - 简书
python 修改文件内某一行的操作
eg:properties=open("text.txt",'r+')lines=properties.readlines()d=""forlineinlines:c=line.replace("my name is abc","my name is efg")d+=cproperties.seek(0)#不要让python记住执行到这里,从文件头还始properties.truncate()#清空文件properties.write(d)properties.close()
Why Stock Markets CrashThis page intentionally left blankWhy Stock Markets CrashCritical Events in ComplexFinancial SystemsD i d i e r S ...
**2014真题Directions:Read the following text. Choose the best word(s) for each numbered blank and mark A,B,C or D on the ANSWER SHEET.(10 p...
Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式...
Action 13:28:27: INSTALL. 1: MySQL Notifier 1.1.7 2: {724CDD73-430E-47DA-8F4E-7DF} Action 13:28:27: FindRelatedProducts. Searchi...
From: http://www.cnblogs.com/zhoujie/archive//python7.html 目录和文件操作 语言只有和外部连起来操作才会实现更强大的功能,比如操作文件、数据库等,这样数据可以有一块单独存储的地方,而不是存放在内存...
#本文参加第28届柏林园征文,所有内容均为本人原创#
“我能出去走走吗?”
“随时都可以。”
“可能会很久。”
“做你想做的,多久也没关系。”
我无法理解父亲在这件事上对我的大度。带着两岁多的金毛,我叫它热狗。破旧的吉普轰轰作响,一路向北,开向远方。
亲爱的儿子,最近你们数学老师在推行:数学作业不带回家做,第一个星期试行,你全部没有带回家做,不错,儿子你做得很好。这周开始,你们数学老师开始统计不带回家作业的比例,连续三天都是90%同学全成了,而你不在这90%里。昨晚我回来问了你是何原因没有及时完成,刚开始...
小时候的我们,摔跤了有妈妈哄,得到一点小进步有爸爸的奖励,地震了天花板塌下来有爸妈护着,幸福得就像那个小公举小王子。没有忧愁,每天只管着怎么开心快乐。 可随着年龄的渐长,我们开始接触这个社会,接触这个让我们又爱又恨的大熔炉,在这里我们开始明白社会的险恶,混江湖的不易,在摸打...
三姑从姑娘时就擅长做衣服、做小孩子的棉袄、棉裤,十里八乡都扯了布排着队来屋里找她,农闲时白天做,农忙时就晚上熬眼做,小时候的记忆里睡觉前她对着煤油灯,醒来不知几时,她还在缝着。 因我生在阴历十月初一,在农村是鬼节,留不住。三姑夫家姓刘,便认在她家。家里还有两个姐姐一个哥哥,...python 删除大文件中的某一行(最有效率的方法)
&更新时间:日 09:33:15 & 投稿:jingxian
下面小编就为大家带来一篇python 删除大文件中的某一行(最有效率的方法)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
用 python 处理一个文本时,想要删除其中中某一行,常规的思路是先把文件读入内存,在内存中修改后再写入源文件。
但如果要处理一个很大的文本,比如GB级别的文本时,这种方法不仅需要占用很大内存,而且一次性读入内存时耗费时间,还有可能导致内存溢出。
所以,需要用另外一个思路去处理。
我们可以使用 open() 方法把需要修改的文件打开为两个文件,然后逐行读入内存,找到需要删除的行时,用后面的行逐一覆盖。实现方式见以下代码。
with open('file.txt', 'r') as old_file:
with open('file.txt', 'r+') as new_file:
current_line = 0
# 定位到需要删除的行
while current_line & (del_line - 1):
old_file.readline()
current_line += 1
# 当前光标在被删除行的行首,记录该位置
seek_point = old_file.tell()
# 设置光标位置
new_file.seek(seek_point, 0)
# 读需要删除的行,光标移到下一行行首
old_file.readline()
# 被删除行的下一行读给 next_line
next_line = old_file.readline()
# 连续覆盖剩余行,后面所有行上移一行
while next_line:
new_file.write(next_line)
next_line = old_file.readline()
# 写完最后一行后截断文件,因为删除操作,文件整体少了一行,原文件最后一行需要去掉
new_file.truncate()
以上这篇python 删除大文件里的某一行(最有效率的方法)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具为了账号安全,请及时绑定邮箱和手机
python怎么删除json文件中的某些项?求大神解答
如题,我想删除“”age“”项,怎么删除,求大神解答?
转成json对象,如果是字符串用load方法转成json对象,再用pop方法就可以了。#-*- coding: UTF-8 -*-
Created on
@author: cxzchange
import json
s = json.loads('{"_id":{"$oid":""}, "age":"29","degree":1,"gender":"男","id":""}')
s.pop('age')
print s.keys()
你还没有登录,请先登录或注册慕课网帐号
18718人关注
Copyright (C) 2018 imooc.com All Rights Reserved | 京ICP备 号-11

我要回帖

更多关于 文本文件格式 的文章

 

随机推荐