在Python / C ++中更改文件中的随机数替换数字

时间:2018-05-07 08:34:11

标签: python c++

我需要混合我的数据。我在文件中有一些数字,我需要将它混合在一起,例如,在20上更改所有4,但是不要将14改为120。我想了很多,我不确定是否可能,因为有大量的数字,我需要用随机值进行100次替换。 有人这样做过吗?有谁知道这可能吗?

1 个答案:

答案 0 :(得分:1)

这是一个可能对您有帮助的python示例:

import re
import random

def writeInFile(fileName, tab): //This function writes the answer in a file
    i = 0
    with open(fileName, 'a') as n:
        while i != len(tab):
            n.write(str(tab[i]))
            if i + 1 != len(tab):
                n.write(' ')
            i += 1
        n.write('\n');

def main():
    file = open('file.txt', 'r').readlines() //Reading the file containing the digits 
    tab = re.findall(r'\d+', str(file)) //Getting every number using regexp, in string file, and put them in a list.
    randomDigit = random.randint(0, 100) // Generating a random integer >= 0 and <= 100
    numberToReplace = "4" //Manually setting number to replace
    for i in xrange(len(tab)): //Browsing list, and replacing every "4" to the randomly generated integer.
        if tab[i] == str(numberToReplace):
            tab[i] = str(randomDigit)
    writeInFile("output.txt", tab) //Call function to write the results.

if __name__ == "__main__":
        main()

示例:

file.txt包含:4 14 4 444 20

Output.txt将是:60 14 60 444 20,考虑到随机生成的整数为60

重要说明:在此示例中,我认为您的文件仅包含正数。因此,您必须修改regexp才能获得负数,如果您的数字不是数字,则需要更改一下。

可能不是你需要它的方式,但我认为这是一个好的开始。