查找,替换和打印更新后的字符串

时间:2017-12-28 21:40:22

标签: python string loops random str-replace

我正在尝试创建一个python脚本,在string中有10-20行固定数据,其中包含2个特殊字符,需要用不同替换,random {{ 1}}使用string

randomword()

字符串中的两个特殊字符是import random, string def randomword(length): letters = string.ascii_lowercase return ''.join(random.choice(letters) for i in range(length)) junk = """ random_string1 = {}; random_string2 = {}; random_string3 = {}; random_string4 = {}; random_string5 = {}; """ stra = string.replace(junk, '{}', randomword(40)) print (stra) ,我想迭代字符串来查找这些字符,并用不同的随机{}替换它们。 string

以上是我得到的,这段代码取代了所有的事件  randomword()的随机字符串,但它们具有相同的值,我希望每个{}都有不同的值。

我不知道如何将其放入{}。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:1)

由于您已使用string formatting '{}'的默认占位符,因此可以执行以下操作:

>>> print(junk.format(*(randomword(40) for _ in range(junk.count('{}')))))

random_string1 = lazbdzezssemtsfknajawriafozpjwizigykvmac;
random_string2 = pxhkyrnjiqsvcivcppqqpbwuocsvbfauygdrwpuj;
random_string3 = ewhrsryjtfwtmulmqfqxzrzvyspiefrddpzrxkvq;
random_string4 = sqiulddoevddtieymjiexnmzezrdayvwigmsmgld;
random_string5 = evscqvrccknkulpkqchodcjlognsnrcxqcsexnrv;

答案 1 :(得分:1)

使用randint(97, 122)

import random 


def randomword(length):
   s = ""
   for _ in range(length):
       a = random.randint(97, 122)
       s += chr(a)
   return s

def replace(original_string, string_to_replace):
    result_string = ""
    while original_string.find(string_to_replace) >= 0:
      pos = original_string.find(string_to_replace)
      result_string += original_string[0: pos]
      result_string += randomword(40)
      next_pos = pos+2
      original_string = original_string[next_pos:]
    result_string += original_string[:]
    return result_string

junk = """
random_string1 = {};
random_string2 = {};
random_string3 = {};
random_string4 = {};
random_string5 = {};
"""

stra = replace(junk, "{}")
print (stra)

答案 2 :(得分:1)

可以使用正则表达式:

>>> print(re.sub('{}', lambda _: randomword(40), junk))

random_string1 = emgdidmmghkunqkwdfcnvsffdnfhvqrybhqdfklh;
random_string2 = mgggwchtzpuhntnfxzpsmkarkwnlghcwicnvxmpt;
random_string3 = liemdzegmzfpuozktclxnmfmavjkaxqhrfaldqkn;
random_string4 = ugchyijmsvzmeaiyzyaiudrnnfskzdboukvdwiye;
random_string5 = rfazvtvhygfixielqzbuhlnzvjjtrkhsdetomjri;