Python 删除文件最后一行

今天在修改数据分析平台的BUG时候,发现两个历史遗留问题。

  1. 不能加载中文文件
  2. csv中最后一行都是空行

严重的是第二个问题,因为在写文件的时候都是这样写的

line = "somethings you want to write"+"\n"1

因此,每个文件最后都有一个空行。在前端显示的时候老出现type i is undefined前端显示文件

但是因为有一个空行就不能分页,因为在遍历的时候,遇到的item都不一样
最后的解决方案是这样的:

  1. 读取文件
  2. 直接定位到最后一个字符
  3. 向上读一个字符
  4. 判断是否是”\n”
  5. 执行删除
  6. 关闭文件

具体的代码如下:

# -*- coding: utf-8 -*-
"""
Created on Wed Aug 23 10:04:25 2017

@author: APAC
"""
import os
f = open("Take.csv","rb+")
f.seek(-1 ,os.SEEK_END)
if f.next() == "\n":
    f.seek(-1 ,os.SEEK_END)
    f.truncate()
f.close()12345678910111213

Python File truncate() 方法

truncate() 方法用于截断文件,如果指定了可选参数 size,则表示截断文件为 size 个字符。 如果没有指定 size,则从当前位置起截断;截断之后 size 后面的所有字符被删除。

实例

以下实例演示了 truncate() 方法的使用:

文件 runoob.txt 的内容如下:

1:www.runoob.com
2:www.runoob.com
3:www.runoob.com
4:www.runoob.com
5:www.runoob.com

循环读取文件的内容:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# 打开文件
fo = open("runoob.txt", "r+")
print "文件名为: ", fo.name

line = fo.readline()
print "读取第一行: %s" % (line)

# 截断剩下的字符串
fo.truncate()

# 尝试再次读取数据
line = fo.readline()
print "读取数据: %s" % (line)

# 关闭文件
fo.close()

以上实例输出结果为:

文件名为:  runoob.txt
读取第一行: 1:www.runoob.com

读取数据:

以下实例截取 runoob.txt 文件的10个字节:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# 打开文件
fo = open("runoob.txt", "r+")
print "文件名为: ", fo.name

# 截取10个字节
fo.truncate(10)

str = fo.read()
print "读取数据: %s" % (str)

# 关闭文件
fo.close()

以上实例输出结果为:

文件名为:  runoob.txt
读取数据: 1:www.runo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值