Форум сайта python.su
Имеется текстовый файл, состоящий из множества строк
В еонкретных строках нужно менять значения чисел (буду менять на случайное число с помощью функции распределения, но суть не в этом)
Необходим код, который на основе базового txt мог генерировать множество txt с названиями (1, 2, и т д ) в каждом из которых значения в строках разные.
Самому зациклить не получается.
Во вложении пример базового файла
– Permeability in X, Y and Z directions for each cell
PERMX
75*50/ - нужно менять значение 50 в этой строке
COPY
PERMX PERMY /
PERMX PERMZ /
/
MULTIPLY
PERMZ 0.12 /
/
– Porosity of each cell
PORO
75*0.2/ нужно менять значение 0.2 в этой строке
PS Желательно чтобы создавалась еще отдельная директория (папка) под каждый файл
Отредактировано Jbgdan (Июль 18, 2018 14:08:06)
Прикреплённый файлы:
sample.txt (563 байта)
Офлайн
показывайте ваш код - будем смотреть что не получаеться
Офлайн
Для поиска и замены числа в файле я не придумал ничего лучше чем задать изначально уникальное число (наверное грамотнее словом) и заменять его. Не понимаю как генерировать разные файлы в разных папках и как присваивать новое имя для каждого файла и папки.
import random
n=1
for n in range(100):
# Read in the file
with open('0.txt', ‘r’) as file :
filedata = file.read()
b=random.lognormvariate(3.924,1)
s=str(round(b,1))
# Replace the target string
filedata = filedata.replace('33.4', s)
# Write the file out again
with open('file.txt', ‘w’) as file:
file.write(filedata)
n=n+1
Отредактировано Jbgdan (Июль 19, 2018 07:56:29)
Офлайн
items=list(range(9))
for item in items:
with open('0.txt', ‘r’) as file :
filedata = file.read()
b=random.lognormvariate(3.924,1)
s=str(round(b,1))
# Replace the target string
filedata = filedata.replace('33.4', s)
# Write the file out again
with open('{}file.txt'.format(item), ‘w’) as file:
file.write(filedata)
Все, получилось кажется
Осталось закинуть каждый файл в папку с таким же имененм
Отредактировано Jbgdan (Июль 19, 2018 09:04:46)
Офлайн