如何从文件中读取每一行并将该行输出到具有扩展名的另一个文件

时间:2018-03-11 15:36:13

标签: python file

好的,我有一些麻烦。 我有一个包含几个关键字的文件。我有另一个输出文件。

我正在尝试从第一个文件中读取每一行,在结尾处添加一个字符串,并将输出添加到最后一个文件。

这是我目前所拥有的:

def add(x, extend, file):
  extend = Extl
  file = open(file, "a")

  for i in extend:
    out = x + i + " + roy"

    file.write(out + "\n")
  file.close()

print("Starting...")

Extl = ['c', 's', 'aa', 'aqe','tdd', 'lap', 'tre', 'bgh', 'r' ]

Keys = []
Reader = open("Keywords.txt", "r")
for line in Reader:
  Keys.append(line)

S = 0  
while S < len(Keys):  
  xc = Keys[S]
  files = "File.txt"
  add(xc, Extl, files)
  S += 1

然而,当我收到输出时,我会得到这样的结果:

Keypeo
c + roy
Keypeo
s + roy
Keypeo
aa + roy
Keypeo
aqe + roy
Keypeo
tdd + roy
Keypeo
lap + roy
Keypeo
tre + roy
Keypeo
bgh + roy
Keypeo
r + roy
Aewqc + roy
Aewqs + roy
Aewqaa + roy
Aewqaqe + roy
Aewqtdd + roy
Aewqlap + roy
Aewqtre + roy
Aewqbgh + roy
Aewqr + roy

没有正确添加关键字,只有最后几个是正常的。

非常感谢帮助。

3 个答案:

答案 0 :(得分:1)

由于链接不方便,

Reader = open("Keywords.txt", "r")
for line in Reader:
    Keys.append(line)

您可以尝试将其更改为

Reader = open("Keywords.txt", "r")
for line in Reader:
    line = line.rstrip('\n')
    Keys.append(line)

答案 1 :(得分:0)

您的文件在某些​​行的末尾有新的换行符。这会导致out变量中的连接文本之间的换行符。在将其附加到键之前,请删除新行字符。有directly give you a list by reading a file的函数。 Python Docs是寻找此类功能的绝佳来源。

Keys = []
Reader = open("Keywords.txt", "r")
for line in Reader:
  Keys.append(line.rstrip('\n'))

答案 2 :(得分:0)

我仍然不确定你想要什么,因为你没有评论你的代码而你没有发布你正在寻找的具体结果。如果你想让别人帮助你,你应该总是这样做。因此,基于可用的信息,这就是我想出的。我的代码适用于Python 2.7.x.在使用with open()的旁注时,打开的文件会在不再需要时自动关闭。

#!python2

# adds an extension and ' + roy' to a key
def add(Keys, Ext1):
    # write results to a string
    out = ''

    for i in Keys:
        for j in Ext1:
            out += i + j + " + roy\n"

    # write string to file
    with open ('file.txt', 'w') as wf:
        wf.write(out)

    print 'Done!'

Keys = []
Extl = ['c', 's', 'aa', 'aqe', 'tdd', 'lap', 'tre', 'bgh', 'r' ]

print("Starting...")

# load keywords to 'Keys' list
with open('Keywords.txt', 'r') as fp:
    for line in fp:
        Keys.append(line.rstrip())

add(Keys, Extl)