`
黑鸟酱
  • 浏览: 126813 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

python 文件插入第一行

 
阅读更多
def file_insert(fname,linenos=[],strings=[]):  
    """ 
    Insert several strings to lines with linenos repectively. 
 
    The elements in linenos must be in increasing order and len(strings) 
    must be equal to or less than len(linenos). 
 
    The extra lines ( if len(linenos)> len(strings)) will be inserted 
    with blank line. 
    """  
    if os.path.exists(fname):  
        lineno = 0  
        i = 0  
        for line in fileinput.input(fname,inplace=1):  
            # inplace must be set to 1  
            # it will redirect stdout to the input file  
            lineno += 1  
            line = line.strip()  
            if i<len(linenos) and linenos[i]==lineno:  
                if i>=len(strings):  
                    print "\n",line  
                else:  
                    print strings[i]  
                    print line  
                i += 1  
            else:  
                print line

 fileinput.input的inplace必须要设为1,以便让stdout被重定向到输入文件里:

file_insert('a.txt' ,[ 1 , 4 , 5 ],[ 'insert1' , 'insert4' ]

 

分享到:
评论
2 楼 miniduan 2013-06-21  
i here by provide one that works:

import os

def prepend(filename, data, bufsize=1<<15):
    # backup the file
    backupname = filename + os.extsep+'bak'
    try: os.unlink(backupname) # remove previous backup if it exists
    except OSError: pass
    os.rename(filename, backupname)

    # open input/output files,  note: outputfile's permissions lost
    with open(backupname) as inputfile, open(filename, 'w') as outputfile:
        # prepend
        outputfile.write(data)
        # copy the rest
        buf = inputfile.read(bufsize)
        while buf:
            outputfile.write(buf)
            buf = inputfile.read(bufsize)

    # remove backup on success
    try: os.unlink(backupname)
    except OSError: pass

print 'austin test'
prepend('D:\\aduan\\program\\abc.txt','i love her\n')
print 'austin test done'


output:
D:\aduan\program>type abc.txt
i love youi love you
D:\aduan\program>type abc.txt
i love youi love you
D:\aduan\program>python python.insert1stLine.py
austin test
austin test done

D:\aduan\program>type abc.txt
i love her
1 楼 miniduan 2013-06-21  
验证了一下,不好用啊:

import fileinput, os

def file_insert(fname,linenumbers=[],strings=[]): 
    """
    Insert several strings to lines with linenumbers repectively.

    The elements in linenumbers must be in increasing order and len(strings)
    must be equal to or less than len(linenumbers).

    The extra lines ( if len(linenumbers)> len(strings)) will be inserted
    with blank line.
    """ 
    if os.path.exists(fname): 
        lineno = 0 
        i = 0 
        for line in fileinput.input(fname,inplace=1): 
            # inplace must be set to 1 
            # it will redirect stdout to the input file 
            lineno += 1 
            line = line.strip() 
            if i<len(linenumbers) and linenumbers[i]==lineno: 
                if i>=len(strings): 
                    print "\n",line 
                else: 
                    print strings[i] 
                    print line 
                i += 1 
            else: 
                print line

print 'austin test'
file_insert('D:\\aduan\\program\\abc.txt', [1,4,5], ['i love you'])
print 'austin test done'

相关推荐

    Python3按行合并两个txt文件并在开头插入一行.rar

    在本案例中,我们关注的是一个与Python编程相关的任务,即如何使用Python3来按行合并两个文本文件(txt文件)并在合并后的文件开头插入一行。这个任务常见于数据处理、日志整合或者任何需要将多个文本数据源合并成一...

    python 实现在txt指定行追加文本的方法

    lines.insert(1, 'a new line') # 在第二行插入 s = '\n'.join(lines) fp = file&#40;'data.txt', 'w'&#41; fp.write(s) fp.close() 以上这篇python 实现在txt指定行追加文本的方法就是小编分享给大家的全部内容了,...

    python 操作excel 插入字段 附件案例

    使用openpyxl,可以创建一个`Image`对象来插入图片,但直接插入其他类型的文件(如Word、Excel)需要借助第三方库,如`python-docx` 或 `xlrd/xlwt`。对于ZIP文件,可能需要先解压并提取内容,再将其作为图片插入。 ...

    Python实现插入排序.rar

    1. **初始化**:首先,将数组分为已排序和未排序两部分,初始时已排序部分只有一个元素,即数组的第一个元素。 2. **比较与移动**:遍历未排序部分的每个元素,假设当前元素为`key`,然后将其与已排序部分的元素从...

    C#向EXCEL模板文件中插入数据行

    本话题聚焦于如何利用C#在已有的Excel模板文件中插入数据行,同时保持模板原有的格式不受破坏。这在数据分析、报表生成或批量处理数据时非常常见。 首先,我们需要了解的是Microsoft Office Interop库,这是.NET ...

    Python3.6.4安装包文件

    1. **Python 3.x系列的改进**:Python 3.6.4是3.x系列中的一个维护版本,相较于早期的Python 3.0,它包含了众多改进和修复。例如,语法的优化,如引入了f-string(格式化字符串字面量),提高了字符串处理的效率和...

    在文本文件的指定位置插入行.rar

    在给定的压缩包文件“在文本文件的指定位置插入行.rar”中,我们可以推测这是一个涉及文本文件操作的程序源码或者相关附件,主要用于演示或实现如何在已有的文本文件中,根据指定的位置插入新的行。 1. **文本文件...

    Python操作Excel插入删除行的方法

    本文将详细介绍如何利用Python来操作Excel文件,特别是实现插入与删除行的功能。 #### 2. 使用openpyxl模块 ##### 2.1 概述 `openpyxl` 是一个非常流行的Python库,用于读取和写入Microsoft Excel 2010 xlsx/xlsm...

    Python语言基础:文件模式.pptx

    在这个例子中,`open()`函数被调用,第一个参数是文件路径,第二个参数是`mode`,即`"w"`,表示我们将向"D:\Python"路径下的文件写入数据。如果文件不存在,它会被创建;如果已存在,其内容会被清除。 `+`模式的...

    python实现向ppt文件里插入新幻灯片页面的方法

    本文实例讲述了python实现向ppt文件里插入新幻灯片页面的方法。分享给大家供大家参考。具体实现方法如下: # -*- coding: UTF-8 -*- import win32com.client import win32com.client.dynamic import os #我的示例...

    python快速合并csv文件.rar

    为了添加文件名列,我们使用`insert`方法在第一列插入新的列,并传入文件名列表。最后,使用`to_csv`方法将合并后的DataFrame写入CSV文件。 总结起来,Python提供了多种方式来处理CSV文件,包括基础的`csv`模块和...

    Python安装文件 Python 3.7

    而`python-3.7.0-amd64.exe`则是3.7系列的第一个正式版本。 在安装Python 3.7时,用户可以选择自定义安装路径,添加Python到系统PATH环境变量,以及选择是否安装Python的开发工具,如pip(Python包管理器),以及...

    python 自动办公 用Python批量往Word文档中指定位置添加图片 码实例有详细注解,适合新手一看就懂

    在IT行业中,自动化办公是提高效率的关键之一,Python作为一种强大的脚本语言,因其简洁的语法和丰富的库支持,常被用于此类任务。本教程将详细讲解如何使用Python批量往Word文档中指定位置添加图片,适合Python初学...

    fp.rar_python_python 数据库_python读取数据_文件_读取文件

    "fp.rar"这个文件可能是一个压缩包,里面包含了与Python文件操作、数据库连接以及数据读取相关的资源。在这里,我们将深入探讨这些关键知识点。 1. **Python 文件操作**: Python 提供了简洁易用的内置函数来处理...

    python3.8、3.9、3.10安装文件

    在安装Python后,可以通过命令行或集成开发环境(IDE)来运行代码,使用Python的标准库或第三方库进行开发。Python的强大之处在于其广泛的生态系统,包括科学计算、数据分析、网络编程、Web开发等多个领域。因此,...

    Python 学习笔记 第二版.pdf

    ### Python学习笔记第二版知识点概览 #### 一、Python语言基础 - **虚拟机**:Python运行在一种称为Python虚拟机(PVM)的环境中。这种虚拟机负责执行Python字节码,提供了语言级别的抽象层,使得Python程序可以在...

    python二维表转一维表-曾贤志从零基础开始学用Python处理Excel数据第1-2季.pdf

    1. **Python基础**: - **什么是Python**:Python是一种高级编程语言,以其简洁、易读的语法而闻名,适合初学者入门。 - **为什么要学习Python处理Excel**:Python提供了丰富的库支持数据处理,如pandas和numpy,...

    Python 实现字符串中指定位置插入一个字符

    在完成转换后,文档提到了使用str_list.index('/')方法,这个方法可以查找列表中'/'字符第一次出现的位置,并将其索引值保存在变量nPos中。索引值nPos是用于确定在列表中的哪个位置插入新的字符。 紧接着使用了str_...

    Python办公自动化视频.rar

    ├第1章 Python基础从零到1 │ │ 1.10高级语法_类和对象.mp4 │ │ 1.11高级语法_模块.mp4 │ │ 1.1基本语法_输出函数print_变量与赋值.mp4 │ │ 1.2基本语法_数据类型.mp4 │ │ 1.3基本语法_输入函数input.mp4 ...

Global site tag (gtag.js) - Google Analytics