[英]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.