netcrsky 发表于 2014-12-29 02:39

怎么删除少于12个字节的行

读取TXT的文件,如果一个行少于12个字符就删除整行。
谢谢!

super皮波 发表于 2014-12-29 10:47

shell的awk
awk -F "" 'NF>=12' file

银风冷月 发表于 2014-12-29 15:35

本帖最后由 银风冷月 于 2014-12-29 15:38 编辑

f = open('a.txt')
l = f.readlines()
f.close()
f = open('a.txt','w+')
i = 0
for j in l:
    if len(j) > 12:
      f.write(j)
f.close()还可以使用fileinput这个模块import fileinput
for i in fileinput.input('a.txt',inplace=1):
    if len(i) > 12:
      print i这些我都未测试,直接写的 有什么问题直接查找下资料

icymirror 发表于 2014-12-31 08:36

我的伪代码过程:

打开写文件句柄
打开读文件句柄
    每次读到一行,
      判断长度,
      小于指定长度,跳过循环中后续步骤,开始读下一行
      把读到的行,写入目标文件
关闭读文件句柄
关闭写文件句柄
(下面步骤不是一定需要的)
删除读的文件,
把写的文件改名为读的文件名

这样对于小文件足够了。
如果文件比较大,建议把中间过程改下,
一次读一个大缓冲区
针对缓冲区中的两个"\n"之间的长度进行正则匹配和过滤
过滤结果写到写入文件。

netcrsky 发表于 2015-01-02 10:47

非常多的热心人,非常感谢。这几天在搬家没有来看贴。非常感谢。

1073710317 发表于 2015-01-03 22:01

用awk,一句话即可,楼主可以系统学习下awk

1073710317 发表于 2015-01-03 22:02

1073710317 发表于 2015-01-03 22:01 static/image/common/back.gif
用awk,一句话即可,楼主可以系统学习下awk

sorry,没注意到楼主发在python版块,用python也很容易
页: [1]
查看完整版本: 怎么删除少于12个字节的行