繁体   English   中英

在文件的每一行的开头和结尾添加一个字符

[英]Add a char to the beginning and end of each line in a file

我有一个文本文件,每一行仅包含一个单词。 我想通过在每行中每个单词的开头和结尾附加一个字符来更新文件。 这是我在Python中的代码:

appendText='_'
names=open("name.txt",'r')
updatedNames=open("name2.txt",'a')
for name in names:
  updatedNames.write(appendText+name+appendText)
updatedNames.close()

但是问题是此代码将_添加到\\n char之后的行末。 换句话说,输出如下所示:

_Name
_

_Name后接enter ,然后在下一行再enter _ 我想将_放在同一行中:

_Name_

您可以使用str.rstrip()摆脱\\n

appendText = '_'
with open("name.txt", 'r') as names:
    with open("name2.txt", 'a') as updatedNames:
        for name in names:
            updatedNames.write(appendText + name.rstrip() + appendText + '\n')

并使用上下文管理器打开您的文本文件。

您要删除换行符,然后将其重新添加:

appendText='_'
names=open("name.txt",'r')
updatedNames=open("name2.txt",'a')
for name in names:
  updatedNames.write(appendText + name.rstrip() + appendText + '\n')
updatedNames.close()

您可以尝试以下方法:

append_text = "_"
with open("name.txt") as f:
    buff = []
    for line in f:
        if line.strip():
             buff.append("%s%s%s"% (append_text,line.strip(),append_text))
    updatedNames=open("name2.txt",'w')
    updatedNames.write("\n".join(buff))
    updatedNames.close()

空行将被忽略

打开文件后,我会使用readlines()自动删除\\ n:

mylist = names.readlines()
newstring = []
for word in list:
    newstring += appendText+word+appendText+'\n'

然后将其打印到您的文件中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM