将随机整数添加到文件中的每个单词

时间:2015-03-25 12:31:39

标签: python

我正在创建一个脚本,为文件中的每个单词添加一个随机整数。所有单词都是整数。到目前为止,如果输入只有一列,我的脚本会添加随机整数。

import subprocess
import fileinput
import sys
from random import randint
#print randint(0,9)


for line in fileinput.input('mytext.txt', inplace=True):
    if int(line) < 999:
        line = int(line) + randint(25,101)
    else:
        line = int(line) + randint(50,500)

    line = str(line) + '\n'
    #print line
    sys.stdout.write(line)

如果文件包含以下文本(一列)

,则此方法有效
1
2
3
4

输出:

94
2300
1402
585

但如果文件包含:(两列或更多列)

,则无效
1   2
2   5
3   2
3   4

如何修改它,以便我可以根据需要提供尽可能多的列。

1 个答案:

答案 0 :(得分:0)

使用str.split拆分行并获取数字,然后将随机数添加到整个数字列表中:

for line in fileinput.input('mytext.txt', inplace=True):
    # get all numbers from row
    numbers = [int(x) for x in line.strip().split()]
    if numbers[0] < 999:
        numbers = [x + randint(25,101) for x in numbers]
    else:
        numbers = [x + randint(50,500) for x in numbers]
    # re-map modified numbers to a line of text
    sys.stdout.write(' '.join([str(x) for x in numbers]) + '\n')

如果您对此感到满意,可以使用map代替list comprehension

如果您有类似csv格式的更复杂的内容,请使用csv module