Уведомления

Группа в Telegram: @pythonsu

#1 Июль 18, 2018 14:07:01

Jbgdan
Зарегистрирован: 2018-07-18
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите написать код для работы с txt

Имеется текстовый файл, состоящий из множества строк
В еонкретных строках нужно менять значения чисел (буду менять на случайное число с помощью функции распределения, но суть не в этом)
Необходим код, который на основе базового 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)

Прикреплённый файлы:
attachment sample.txt (563 байта)

Офлайн

#2 Июль 18, 2018 17:07:35

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2586
Репутация: +  60  -
Профиль   Отправить e-mail  

Помогите написать код для работы с txt

показывайте ваш код - будем смотреть что не получаеться



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Июль 19, 2018 07:55:05

Jbgdan
Зарегистрирован: 2018-07-18
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите написать код для работы с txt

Для поиска и замены числа в файле я не придумал ничего лучше чем задать изначально уникальное число (наверное грамотнее словом) и заменять его. Не понимаю как генерировать разные файлы в разных папках и как присваивать новое имя для каждого файла и папки.

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)

Офлайн

#4 Июль 19, 2018 08:31:57

Jbgdan
Зарегистрирован: 2018-07-18
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите написать код для работы с txt

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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version