1

我写了以下python代码。我期望它做的是将文件“noise”中的一个随机单词添加到“raw”的每一行并将其打印到文件“dataset”

#! /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

有人可以指出我的错误吗?

4

2 回答 2

5

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

我测试了它,它对我有用。

于 2013-07-30T19:45:27.863 回答
3

在阅读每一行时使用:

for line in raw:

line最后包含换行符。您需要将其删除。

尝试使用:

noisy = line.rstrip() + " " + addNoise
于 2013-07-30T19:44:58.823 回答