Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 12, 2010 13:31:10

Alex Ivanov
От:
Зарегистрирован: 2010-08-12
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Как превратить кусок кода в текст?

Привет!

Подскажите, пожалуйста, как можна кусок кода позначить как текст? Заранее спасибо!

П.С. Кавычки не работают.



Офлайн

#2 Авг. 12, 2010 13:49:56

vim
От:
Зарегистрирован: 2010-08-03
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Как превратить кусок кода в текст?

Покажите свой код, что вы хотите сделать.



Офлайн

#3 Авг. 12, 2010 14:13:11

Alex Ivanov
От:
Зарегистрирован: 2010-08-12
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Как превратить кусок кода в текст?

Я хочу сгенерировать много папок, в которые я хочу поместить два файла: compile.py и submit.py. Я создаю пустие файли и затем хочу поместить в них код.

import os
import shutil

beginh=0
beginm=0
begink=0

hr=3 # h
mr=4 # death increment due to foraging
kr=5 # perturbation max and min range difference

directory_name = 'foodPert'
for h in range(beginh, beginh+hr):
if h == 0:
d = 100
if h == 1:
d = 500
if h == 2:
d = 1000
for m in range(beginm, beginm+mr):
if m == 0:
df = 0
if m == 1:
df = 0.1
if m == 2:
df = 0.2
if m == 3:
df = 0.3
for k in range(begink, begink+kr):
if k == 0:
fp = 2
if k == 1:
fp = 4
if k == 2:
fp = 6
if k == 3:
fp = 8
if k == 4:
fp = 10
dirName = directory_name+'_h_'+ str(d) + '_df_' + str(df) + '_fp_' + str(fp)
os.mkdir(dirName)

#make compile.py file
c = open('/compile.py','w')
c.close()

c = open('/compile.py','w')
# this information I'll put inside the file
l = ['
import os
import shutil
seeds=5
beginrep=0
cpp_name = 'FoodPerturbation.cpp'
myprogram = directory_name+'_h_'+ str(d) + '_df_' + str(df) + '_fp_' + str(fp)


directory_name = directory_name+'_h_'+ str(d) + '_df_' + str(df) + '_fp_' + str(fp)

for k in range(beginrep,beginrep+seeds):

dirName = directory_name+str(k+1)

#if directory is not there yet, create it
if not (os.path.isdir('./' + dirName + '/')):
os.mkdir(dirName)
#copy necessary files
shutil.copyfile('random.h',dirName+'/random.h')
shutil.copyfile('SocialColony.h',dirName+'/SocialColony.h')
shutil.copyfile('SocialPopulation.h',dirName+'/SocialPopulation.h')
shutil.copyfile('Individual.h',dirName+'/Individual.h')
shutil.copyfile(cpp_name, dirName + '/' + cpp_name)
#change to the subdirectory
os.chdir(dirName)
#compile within subdirectory, creating the executable within subdirectory
os.popen('g++ -g ' + cpp_name + ' -o ' + myprogram)
#change back to higher directory
os.chdir('../')
#make job description files (handy if they have a keyword that distinguishes them, like 'job')
job_name='job_' + myprogram +'_s'+str(k+1)

f=open(job_name,'w')
f.write('#PBS -N dynamics'+'_rep'+str(k+1)+'\n')
f.write('#PBS -l walltime=100:00:00\n')
f.write('#PBS -l ncpus=2\n')
f.write('#PBS -j oe\n')
f.write('cd '+ directory_name + '/' + dirName+ '\n')
f.write('./' + myprogram + ' ' + str(k+1) + '\n')

f.close'
]
for i in l:
c.write(i)
c.close

#make submit.py file
s = open('/submit.py','w')
s.close()

s = open('/compile.py','w')
# this information I'll put inside the file
j = ['
import os

seeds=5
beginrep=0

for k in range(beginrep,beginrep+seeds):
job_name='deathPert_h500_df_0_pr_0.015_per_0.5'+'_s'+str(k+1)
os.popen('qsub '+'job_'+job_name)

os.chdir('..')
'
]
for i in j:
s.write(i)
s.close



Офлайн

#4 Авг. 12, 2010 17:16:22

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Как превратить кусок кода в текст?

Используйте тройные кавычки.



Офлайн

#5 Авг. 12, 2010 17:27:51

Alex Ivanov
От:
Зарегистрирован: 2010-08-12
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Как превратить кусок кода в текст?

Большое спасибо!



Офлайн

#6 Авг. 12, 2010 17:48:11

vim
От:
Зарегистрирован: 2010-08-03
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Как превратить кусок кода в текст?

Если я правильно понял вашу задачу, то можно открыть файл, перейти в нужную вам папку там создать файл и читать из первого файла, а писать в другой.



Офлайн

#7 Авг. 12, 2010 18:04:32

Alex Ivanov
От:
Зарегистрирован: 2010-08-12
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Как превратить кусок кода в текст?

Верно!

Но мне пока не удается создать файлы в папках. Мне выдает ошибку Permission denied ‘/compile.py’



Офлайн

#8 Авг. 12, 2010 18:55:41

vim
От:
Зарегистрирован: 2010-08-03
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Как превратить кусок кода в текст?

Alex Ivanov
Верно!

Но мне пока не удается создать файлы в папках. Мне выдает ошибку Permission denied ‘/compile.py’
Такая ошибка обычно говорит об отсутствии прав либо на создание файла либо на его запись, выставьте права.



Офлайн

#9 Авг. 12, 2010 19:15:33

Alex Ivanov
От:
Зарегистрирован: 2010-08-12
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Как превратить кусок кода в текст?

У меня есть права администратора, если вы это имеете ввиду.



Офлайн

#10 Авг. 12, 2010 22:59:43

vim
От:
Зарегистрирован: 2010-08-03
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Как превратить кусок кода в текст?

Alex Ivanov
У меня есть права администратора, если вы это имеете ввиду.
Решил я детально посмотреть ваш код.
Во-первых, зачем вот этот код:
#make compile.py file
c = open('/compile.py','w')
c.close()

#make submit.py file
s = open('/submit.py','w')
s.close()
совершенно не нужен.
Во-вторых, ошибка у вас из-за того что вы создаете и открываете не файл, а папку, уберите слеш перед именем файла.
В-третьих, если вы хотите писать ваши файлы в созданные вами папки, необходимо перед открытием файла перейти в эту папку, либо передавать функции open() полный путь.
В-четвертых, ограничьте тройными кавычками код, который вы собираетесь писать в файл.
Удачи.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version