好的,我有一些麻烦。 我有一个包含几个关键字的文件。我有另一个输出文件。
我正在尝试从第一个文件中读取每一行,在结尾处添加一个字符串,并将输出添加到最后一个文件。
这是我目前所拥有的:
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
没有正确添加关键字,只有最后几个是正常的。
非常感谢帮助。
答案 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)