Рандомизация выходов в файл
Я генерирую данные для тестирования, используя Python.
У меня весь процесс работает, как и должно быть, но у меня есть этот кусок кода.
def get_lines():
line1 = "Document Header - Once per document"
line2 = "\nDocument Information - Once per document"
line3 = "\nDocument Information 2 - Once per document"
line4 = "\nUser information 1"
line5 = "\nUser Information 1"
line6 = "\nUser Information 1"
line7 = "\nDocument Footer - Once per document"
return line1 + line2 + line3 + line4 + line5 + line6 + line7
То, что я хотел бы сделать, это заполнить строку 4,5,6 информацией о пользователе 2,3,4 примерно так:
line1 = "Document Header - Once per document"
line2 = "\nDocument Information - Once per document"
line3 = "\nDocument Information 2 - Once per document"
line4 = "\nUser information 1"
line5 = "\nUser Information 1"
line6 = "\nUser Information 1"
line4 = "\nUser information 2"
line5 = "\nUser Information 2"
line6 = "\nUser Information 2"
line4 = "\nUser information 3"
line5 = "\nUser Information 3"
line6 = "\nUser Information 3"
line7 = "\nDocument Footer - Once per document"
Но сделайте это случайным образом, то есть, скажем, я хочу 10 файлов, некоторые будут содержать один фрагмент пользовательской информации, некоторые 2, 3 и т. Д.
Я изо всех сил пытаюсь найти последовательный способ произвести то, что мне нужно.
Спасибо.
РЕДАКТИРОВАТЬ: Добавлено пример сообщения: ORC OBR и OBX все связаны UID
MSH|^~\&||||||||201705301105||ORM^O01|4960855009|P|2.5||NE|AL||||
PID|1||^^^^HOSPITALNO~^^^^NHSNO||Hendry^John||190203130000|F||||||||||||||
PV1|1||G2D||||||||||||||||||||||||||||||||||||||||||||||||
ORC|NW|2017053019783377||19783377|||1^^^201705304500^^R||^^^201705
OBR|1|2017053019783377||1019|||2017053011045|201705301045||Test001||||||||||
OBX|1|ST|2017053019783377||2017053019783377|||||||||||||||
SPM|1|||||||||||||||||||||||||||||
2 ответа
Вам может понравиться этот код.
def get_lines():
line1 = "Document Header - Once per document"
line2 = "\nDocument Information - Once per document"
line3 = "\nDocument Information 2 - Once per document"
line4 = "\nUser information 1"
line5 = "\nUser Information 1"
line6 = "\nUser Information 1"
line7 = "\nDocument Footer - Once per document"
return setLine(line1, 1) + setLine(line2, 1) + setLine(line3, 1) + setLine(line4, 3)+ setLine(line4, 3, "1", "2")
def setLine(content, iNum = 1, oldStr="", newStr=""):
strStr = ""
for ii in range(0, iNum):
strStr += content.replace(oldStr, newStr)
return strStr
print(get_lines())
Пример выходного кода:
Document Header - Once per document
Document Information - Once per document
Document Information 2 - Once per document
User information 1
User information 1
User information 1
User information 2
User information 2
User information 2
Редактировать
Теперь я вижу, что вы предоставили пример данных, но я не уверен, что это желаемый результат, который вы ожидаете от get_lines
метод или является то, что вход, который вы собираетесь использовать, чтобы получить желаемый результат из get_lines
?
Просто передайте переменную с идентификатором пользователя, который вы хотите напечатать. Вы также можете использовать random.choice
случайным образом выбрать значение из списка или создать и передать случайные целые числа в диапазоне с random.randint
def get_lines(userid):
line1 = "Document Header - Once per document"
line2 = "\nDocument Information - Once per document"
line3 = "\nDocument Information 2 - Once per document"
line4 = "\nUser information {}".format(userid)
line5 = "\nUser Information {}".format(userid)
line6 = "\nUser Information {}".format(userid)
line7 = "\nDocument Footer - Once per document"
return line1 + line2 + line3 + line4 + line5 + line6 + line7
userids = [1, 2, 3,,4,5, 6, 7, 8, 9]