Is there a way to detect if a block of code in the script itself contains a specific word
... and decide execution of that block based on the presence of that word?
For example I have this:
for frame in range(10):
with open('frame_init.gro', 'w') as g:
# do something
with open('frame_next.gro', 'w') as h:
# do something
When "frame" reaches 9, I don't want the whole with open('frame_next.gro', 'w') as h
block to execute at all. Of course I have considered just encasing it in a if frame != 9
but my actual entire code is really long so it would be nice if I could just scan my script within the script itself if it is possible.
For those curious about what other things frame_next.gro
is involved in, the answer is lots of calculations
python
add a comment |
... and decide execution of that block based on the presence of that word?
For example I have this:
for frame in range(10):
with open('frame_init.gro', 'w') as g:
# do something
with open('frame_next.gro', 'w') as h:
# do something
When "frame" reaches 9, I don't want the whole with open('frame_next.gro', 'w') as h
block to execute at all. Of course I have considered just encasing it in a if frame != 9
but my actual entire code is really long so it would be nice if I could just scan my script within the script itself if it is possible.
For those curious about what other things frame_next.gro
is involved in, the answer is lots of calculations
python
This sounds like an XY problem. Can you explain what problem you are trying to solve with it?
– Klaus D.
Nov 12 '18 at 5:05
wow, this is actually really condescending. Thanks a lot.
– sneedshelp
Nov 12 '18 at 9:56
add a comment |
... and decide execution of that block based on the presence of that word?
For example I have this:
for frame in range(10):
with open('frame_init.gro', 'w') as g:
# do something
with open('frame_next.gro', 'w') as h:
# do something
When "frame" reaches 9, I don't want the whole with open('frame_next.gro', 'w') as h
block to execute at all. Of course I have considered just encasing it in a if frame != 9
but my actual entire code is really long so it would be nice if I could just scan my script within the script itself if it is possible.
For those curious about what other things frame_next.gro
is involved in, the answer is lots of calculations
python
... and decide execution of that block based on the presence of that word?
For example I have this:
for frame in range(10):
with open('frame_init.gro', 'w') as g:
# do something
with open('frame_next.gro', 'w') as h:
# do something
When "frame" reaches 9, I don't want the whole with open('frame_next.gro', 'w') as h
block to execute at all. Of course I have considered just encasing it in a if frame != 9
but my actual entire code is really long so it would be nice if I could just scan my script within the script itself if it is possible.
For those curious about what other things frame_next.gro
is involved in, the answer is lots of calculations
python
python
asked Nov 12 '18 at 4:57
sneedshelpsneedshelp
14
14
This sounds like an XY problem. Can you explain what problem you are trying to solve with it?
– Klaus D.
Nov 12 '18 at 5:05
wow, this is actually really condescending. Thanks a lot.
– sneedshelp
Nov 12 '18 at 9:56
add a comment |
This sounds like an XY problem. Can you explain what problem you are trying to solve with it?
– Klaus D.
Nov 12 '18 at 5:05
wow, this is actually really condescending. Thanks a lot.
– sneedshelp
Nov 12 '18 at 9:56
This sounds like an XY problem. Can you explain what problem you are trying to solve with it?
– Klaus D.
Nov 12 '18 at 5:05
This sounds like an XY problem. Can you explain what problem you are trying to solve with it?
– Klaus D.
Nov 12 '18 at 5:05
wow, this is actually really condescending. Thanks a lot.
– sneedshelp
Nov 12 '18 at 9:56
wow, this is actually really condescending. Thanks a lot.
– sneedshelp
Nov 12 '18 at 9:56
add a comment |
1 Answer
1
active
oldest
votes
You can do something like this:
a = 0
b = 1
print a + b
with open(__file__, 'r') as f:
lines = f.read().split('n')
val = int(lines[0].split(' = ')[-1])
new_line = 'a = '.format(val+1)
new_file = 'n'.join([new_line] + lines[1:])
with open(__file__, 'w') as f:
f.write('n'.join([new_line] + lines[1:]))
From here:
How can I make a python script change itself?
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53256168%2fis-there-a-way-to-detect-if-a-block-of-code-in-the-script-itself-contains-a-spec%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can do something like this:
a = 0
b = 1
print a + b
with open(__file__, 'r') as f:
lines = f.read().split('n')
val = int(lines[0].split(' = ')[-1])
new_line = 'a = '.format(val+1)
new_file = 'n'.join([new_line] + lines[1:])
with open(__file__, 'w') as f:
f.write('n'.join([new_line] + lines[1:]))
From here:
How can I make a python script change itself?
add a comment |
You can do something like this:
a = 0
b = 1
print a + b
with open(__file__, 'r') as f:
lines = f.read().split('n')
val = int(lines[0].split(' = ')[-1])
new_line = 'a = '.format(val+1)
new_file = 'n'.join([new_line] + lines[1:])
with open(__file__, 'w') as f:
f.write('n'.join([new_line] + lines[1:]))
From here:
How can I make a python script change itself?
add a comment |
You can do something like this:
a = 0
b = 1
print a + b
with open(__file__, 'r') as f:
lines = f.read().split('n')
val = int(lines[0].split(' = ')[-1])
new_line = 'a = '.format(val+1)
new_file = 'n'.join([new_line] + lines[1:])
with open(__file__, 'w') as f:
f.write('n'.join([new_line] + lines[1:]))
From here:
How can I make a python script change itself?
You can do something like this:
a = 0
b = 1
print a + b
with open(__file__, 'r') as f:
lines = f.read().split('n')
val = int(lines[0].split(' = ')[-1])
new_line = 'a = '.format(val+1)
new_file = 'n'.join([new_line] + lines[1:])
with open(__file__, 'w') as f:
f.write('n'.join([new_line] + lines[1:]))
From here:
How can I make a python script change itself?
edited Nov 12 '18 at 5:06
Klaus D.
7,63711936
7,63711936
answered Nov 12 '18 at 5:05
ChaosPredictorChaosPredictor
1,99211624
1,99211624
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53256168%2fis-there-a-way-to-detect-if-a-block-of-code-in-the-script-itself-contains-a-spec%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
This sounds like an XY problem. Can you explain what problem you are trying to solve with it?
– Klaus D.
Nov 12 '18 at 5:05
wow, this is actually really condescending. Thanks a lot.
– sneedshelp
Nov 12 '18 at 9:56