2013-07-30 151 views
1

我写了下面的python代码。什么,我希望它做的是从文件的“噪声”添加一个随机单词的“原始”的每一行,并将其打印到文件“数据集”rstrip()不按预期方式工作

#! /usr/bin/python 

from random import randint 

raw = open("raw_dataset_1", "r") 
noise = open("random", "r") 
dataset = open("raw_noisy", "w") 

lines = noise.readlines() 

for line in raw: 
    a = randint(1, 5449) 
    addNoise = lines[a-1] 
    #print a 
    #print addNoise 
    noisy = (line + addNoise) 
    noisy1= noisy.rstrip() 
    #print noisy1 
    dataset.write(noisy1) 

我的预期“数据集”文件是:

city mountain sky sun chalk 
bay lake sun tree discussions 
beach sea sky sun background 

,但我发现:

city mountain sky sun 
chalk 
bay lake sun tree 
discussions 
beach sea sky sun 
background 

可有人请指出我的错误?

+2

输入文件的内容是什么? –

+0

“raw”文件的每一行都包含一组单词。每行“噪音”包含一个单词 – nish

回答

3

在读取使用的每一行:

for line in raw: 

line在末端包含的换行符。你需要删除它。

尝试使用:

noisy = line.rstrip() + " " + addNoise 
+0

感谢rohit。这个作品 – nish

5

我想你想要做的noisy = (line.rstrip("\n") + " " + addNoise)

我测试,它为我工作。

+0

这个作品。谢谢 – nish