首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将文本(单个字母)附加到文本文件中每一行的末尾

将文本(单个字母)附加到文本文件中每一行的末尾
EN

Stack Overflow用户
提问于 2014-09-18 22:06:37
回答 5查看 25.8K关注 0票数 5

下面是我正在处理的文本文件的一个示例:

代码语言:javascript
运行
复制
437868313,2436413,Wyatt,Trenton,08/21/2003,211000010262002,211000010262002,2014,01,54435A000,510,Social Studies (Grade 5),08/14/2013,5-2,02,0,02,02,01,,,,,,100,05/29/2014,
437868313,2436413,Wyatt,Trenton,08/21/2003,211000010262002,211000010262002,2014,01,53235A000,500,Science (Grade 5),08/14/2013,5-2,02,0,02,02,01,,,,,,100,05/29/2014,
437868313,2436413,Wyatt,Trenton,08/21/2003,211000010262002,211000010262002,2014,01,58035A000,560,Physical Education (Grade 5),08/14/2013,5-2,02,0,02,02,01,,,,,,1,05/29/2014,

我只是想把字母'S‘简单地加到其他行的末尾。所以,上面,一共有三个记录。在2014年5月29日之后,我想插入S,这样每一个记录看起来都是:

代码语言:javascript
运行
复制
437868313,2436413,Wyatt,Trenton,08/21/2003,211000010262002,211000010262002,2014,01,54435A000,510,Social Studies (Grade 5),08/14/2013,5-2,02,0,02,02,01,,,,,,100,05/29/2014,S

我意识到这是如此简单的转换到CSV和使用excel,但我得到了各种格式问题的转移回到txt。想和蟒蛇合作一下。我试图使用追加,据我所知,写将覆盖我现有的文件:

代码语言:javascript
运行
复制
myFile = open("myFile.txt", "a")
    for line in myFile:
        myFile.write('S')

我不经常使用python,我想知道如何对它进行索引,以便它以第2行开始,并在逗号后面加上行的末尾,就像我前面提到的那样。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-09-18 22:12:35

您需要逐行读取文件,然后逐行输出文件。这比使用CSV或甚至扩展纸张处理软件要简单得多,这确实让我感到害怕。

代码语言:javascript
运行
复制
with open('input.txt', 'r') as istr:
    with open('output.txt', 'w') as ostr:
        for i, line in enumerate(istr):
            # Get rid of the trailing newline (if any).
            line = line.rstrip('\n')
            if i % 2 == 0:
                line += 'S'
            print(line, file=ostr)

如果仍在使用Python 2,请使用

代码语言:javascript
运行
复制
ostr.write(line + '\n')

而不是print

Update:如果您想要附加到每一行(相对于其他行),只需使用:

代码语言:javascript
运行
复制
with open('input.txt', 'r') as istr:
    with open('output.txt', 'w') as ostr:
        for line in istr:
            line = line.rstrip('\n') + 'S'
            print(line, file=ostr)
票数 15
EN

Stack Overflow用户

发布于 2014-09-18 22:13:13

打开一个用于读取和写入的文件,并枚举输入文件。使用mod 2.将s附加到偶数行并写入输出文件。

代码语言:javascript
运行
复制
with open('myfile.txt', 'rb') as infile, with open('outfile.txt', 'wb') as outfile:
    for lineno, line in enumerate(infile):
        if lineno % 2 == 0:
            line = line + 'S'
        outfile.write(line)

OP想要按照编辑的方式记录每一条记录,所以没有必要测试是否有偶数行。

代码语言:javascript
运行
复制
import os

with open('myfile.txt', 'rb') as infile, with open('outfile.txt', 'wb') as outfile:
    for line in infile:
       line = line.replace(os.linesep, 'S' + os.linesep)
       outfile.write(line)
票数 3
EN

Stack Overflow用户

发布于 2014-09-18 22:19:54

尝试如下:

代码语言:javascript
运行
复制
filename = "file.txt"
file = open(filename, "r")
for line in file:
    print line.replace("\n","S\n")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25923186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档