簡體   English   中英

將文本(單個字母)附加到文本文件中每一行的末尾

[英]Append Text (Single Letter) to the end of each line in a text file

以下是我正在使用的文本文件的示例:

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”。 因此,在上面,總共有 3 條記錄。 2014 年 5 月 29 日之后,我想插入 S。所以每條記錄看起來像:

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 時遇到了各種格式問題。 想用 python 來破解它。 我正在嘗試使用 append,據我所知,write 將覆蓋我現有的文件:

myFile = open("myFile.txt", "a")
    for line in myFile:
        myFile.write('S')

我不經常使用 python,我想知道如何索引它,使它從第 2 行開始,並在逗號之后附加行的末尾,就像我上面提到的那樣。

您需要逐行讀取文件,然后再次逐行輸出。 這比使用 CSV 甚至電子表格處理軟件簡單得多,這確實讓我感到害怕。

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,請使用

ostr.write(line + '\n')

而不是print

更新:如果您想附加到每一行(而不是其他每一行),只需使用:

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)

打開一個文件進行讀取和寫入,並枚舉輸入文件。 使用 mod 2 識別偶數行。將 s 附加到偶數行並寫入輸出文件。

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 希望每條記錄都按照他的編輯進行,因此無需測試偶數行。

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)

嘗試這個:

filename = "file.txt"
file = open(filename, "r")
for line in file:
    print line.replace("\n","S\n")

最簡單的方法是將文件作為一個塊打開,並將逗號和換行符替換為 and S 逗號和換行符。

open("data.txt").read().replace(',\n','S,\n').write()

嘗試這個:

myFile = open("myFile.txt", "a")
Colist = str(myFile.read()).split('\n')
for line in Colist:
    myFile.write(line + 'S' + '\n')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM