我需要混合我的数据。我在文件中有一些数字,我需要将它混合在一起,例如,在20上更改所有4,但是不要将14改为120。我想了很多,我不确定是否可能,因为有大量的数字,我需要用随机值进行100次替换。 有人这样做过吗?有谁知道这可能吗?
答案 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才能获得负数,如果您的数字不是数字,则需要更改一下。
可能不是你需要它的方式,但我认为这是一个好的开始。