Script that fixes YML SIDs to be simplified for production
How to deal with a cynical class?
Am I not good enough for you?
Be in awe of my brilliance!
Why did it take so long to abandon sail after steamships were demonstrated?
Official degrees of earth’s rotation per day
Have researchers managed to "reverse time"? If so, what does that mean for physics?
What is the greatest age difference between a married couple in Tanach?
Why are there 40 737 Max planes in flight when they have been grounded as not airworthy?
Is it possible that AIC = BIC?
Can anyone tell me why this program fails?
The use of "touch" and "touch on" in context
Can elves maintain concentration in a trance?
Is a lawful good "antagonist" effective?
Old race car problem/puzzle
Bash: What does "masking return values" mean?
How do anti-virus programs start at Windows boot?
Meaning of "SEVERA INDEOVI VAS" from 3rd Century slab
Professor being mistaken for a grad student
Is it normal that my co-workers at a fitness company criticize my food choices?
My adviser wants to be the first author
Know when to turn notes upside-down(eighth notes, sixteen notes, etc.)
Instead of Universal Basic Income, why not Universal Basic NEEDS?
Why must traveling waves have the same amplitude to form a standing wave?
Why do Australian milk farmers need to protest supermarkets' milk price?
Script that fixes YML SIDs to be simplified for production
$begingroup$
I work with YML files that include SIDs and the following structure:
title:
"2": "content a" # key: comment
"3": "content b" # key: comment
"4": "content c" # key: comment
"5": "content d" # key: comment
"6": "content e" # key: comment
Usually, I have to remove some strings (note I never remove the number 1 or 2) so my new file looks like this:
title:
"2": "content a" # key: comment
"3": "content b" # key: comment
"5": "content d" # key: comment
"6": "content e" # key: comment
I need to rearrange the SIDs in order to have a sequence without any gap (in this case 2, 3, 4, 5, 6) independently on the content. For that reason I have written the following script. It works properly but I need to bring it into production so I need your help to reduce its complexity, make it clear and simpler or any advice you may have for a beginner (in both, Python and Stack Exchange).
import re, os
file=input ('YML file name: ')
#read the file and store its content as a list
os.chdir('/home/balaclava/Desktop/Scripts/YML fixer/')
rdfile= open(file)
cont=rdfile.readlines()
rdfile.close()
#list to store the reviewed strings
newfile=[]
newfile.append(cont[0]+cont[1])
#Get the second string SID as reference
numRegex = re.compile(r'd+')
act=numRegex.search(cont[1])
global refnum
refnum=int(act.group())
#Loop for each string (-2 due to the two first string are excluded)
for i in range(len(cont)-2):
act=numRegex.search(str(cont[i+2]))
temp=int(act.group())
#If the SID is correct, add item to newlist, else, fix it and add the item to the list.
if temp == (refnum+1):
newfile.append(cont[i+2])
else:
temp= (refnum+1)
change=numRegex.sub(str(temp), cont[i+2])
newfile.append(change)
refnum += 1
#overwrite the file with the newlist content
with open (file,'w') as finalfile:
finalfile.write(''.join(newfile))
finalfile.close()
python beginner
New contributor
$endgroup$
add a comment |
$begingroup$
I work with YML files that include SIDs and the following structure:
title:
"2": "content a" # key: comment
"3": "content b" # key: comment
"4": "content c" # key: comment
"5": "content d" # key: comment
"6": "content e" # key: comment
Usually, I have to remove some strings (note I never remove the number 1 or 2) so my new file looks like this:
title:
"2": "content a" # key: comment
"3": "content b" # key: comment
"5": "content d" # key: comment
"6": "content e" # key: comment
I need to rearrange the SIDs in order to have a sequence without any gap (in this case 2, 3, 4, 5, 6) independently on the content. For that reason I have written the following script. It works properly but I need to bring it into production so I need your help to reduce its complexity, make it clear and simpler or any advice you may have for a beginner (in both, Python and Stack Exchange).
import re, os
file=input ('YML file name: ')
#read the file and store its content as a list
os.chdir('/home/balaclava/Desktop/Scripts/YML fixer/')
rdfile= open(file)
cont=rdfile.readlines()
rdfile.close()
#list to store the reviewed strings
newfile=[]
newfile.append(cont[0]+cont[1])
#Get the second string SID as reference
numRegex = re.compile(r'd+')
act=numRegex.search(cont[1])
global refnum
refnum=int(act.group())
#Loop for each string (-2 due to the two first string are excluded)
for i in range(len(cont)-2):
act=numRegex.search(str(cont[i+2]))
temp=int(act.group())
#If the SID is correct, add item to newlist, else, fix it and add the item to the list.
if temp == (refnum+1):
newfile.append(cont[i+2])
else:
temp= (refnum+1)
change=numRegex.sub(str(temp), cont[i+2])
newfile.append(change)
refnum += 1
#overwrite the file with the newlist content
with open (file,'w') as finalfile:
finalfile.write(''.join(newfile))
finalfile.close()
python beginner
New contributor
$endgroup$
add a comment |
$begingroup$
I work with YML files that include SIDs and the following structure:
title:
"2": "content a" # key: comment
"3": "content b" # key: comment
"4": "content c" # key: comment
"5": "content d" # key: comment
"6": "content e" # key: comment
Usually, I have to remove some strings (note I never remove the number 1 or 2) so my new file looks like this:
title:
"2": "content a" # key: comment
"3": "content b" # key: comment
"5": "content d" # key: comment
"6": "content e" # key: comment
I need to rearrange the SIDs in order to have a sequence without any gap (in this case 2, 3, 4, 5, 6) independently on the content. For that reason I have written the following script. It works properly but I need to bring it into production so I need your help to reduce its complexity, make it clear and simpler or any advice you may have for a beginner (in both, Python and Stack Exchange).
import re, os
file=input ('YML file name: ')
#read the file and store its content as a list
os.chdir('/home/balaclava/Desktop/Scripts/YML fixer/')
rdfile= open(file)
cont=rdfile.readlines()
rdfile.close()
#list to store the reviewed strings
newfile=[]
newfile.append(cont[0]+cont[1])
#Get the second string SID as reference
numRegex = re.compile(r'd+')
act=numRegex.search(cont[1])
global refnum
refnum=int(act.group())
#Loop for each string (-2 due to the two first string are excluded)
for i in range(len(cont)-2):
act=numRegex.search(str(cont[i+2]))
temp=int(act.group())
#If the SID is correct, add item to newlist, else, fix it and add the item to the list.
if temp == (refnum+1):
newfile.append(cont[i+2])
else:
temp= (refnum+1)
change=numRegex.sub(str(temp), cont[i+2])
newfile.append(change)
refnum += 1
#overwrite the file with the newlist content
with open (file,'w') as finalfile:
finalfile.write(''.join(newfile))
finalfile.close()
python beginner
New contributor
$endgroup$
I work with YML files that include SIDs and the following structure:
title:
"2": "content a" # key: comment
"3": "content b" # key: comment
"4": "content c" # key: comment
"5": "content d" # key: comment
"6": "content e" # key: comment
Usually, I have to remove some strings (note I never remove the number 1 or 2) so my new file looks like this:
title:
"2": "content a" # key: comment
"3": "content b" # key: comment
"5": "content d" # key: comment
"6": "content e" # key: comment
I need to rearrange the SIDs in order to have a sequence without any gap (in this case 2, 3, 4, 5, 6) independently on the content. For that reason I have written the following script. It works properly but I need to bring it into production so I need your help to reduce its complexity, make it clear and simpler or any advice you may have for a beginner (in both, Python and Stack Exchange).
import re, os
file=input ('YML file name: ')
#read the file and store its content as a list
os.chdir('/home/balaclava/Desktop/Scripts/YML fixer/')
rdfile= open(file)
cont=rdfile.readlines()
rdfile.close()
#list to store the reviewed strings
newfile=[]
newfile.append(cont[0]+cont[1])
#Get the second string SID as reference
numRegex = re.compile(r'd+')
act=numRegex.search(cont[1])
global refnum
refnum=int(act.group())
#Loop for each string (-2 due to the two first string are excluded)
for i in range(len(cont)-2):
act=numRegex.search(str(cont[i+2]))
temp=int(act.group())
#If the SID is correct, add item to newlist, else, fix it and add the item to the list.
if temp == (refnum+1):
newfile.append(cont[i+2])
else:
temp= (refnum+1)
change=numRegex.sub(str(temp), cont[i+2])
newfile.append(change)
refnum += 1
#overwrite the file with the newlist content
with open (file,'w') as finalfile:
finalfile.write(''.join(newfile))
finalfile.close()
python beginner
python beginner
New contributor
New contributor
New contributor
asked 3 mins ago
BalaclavaBalaclava
11
11
New contributor
New contributor
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
);
);
, "mathjax-editing");
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: "196"
;
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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
);
);
Balaclava is a new contributor. Be nice, and check out our Code of Conduct.
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%2fcodereview.stackexchange.com%2fquestions%2f215464%2fscript-that-fixes-yml-sids-to-be-simplified-for-production%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Balaclava is a new contributor. Be nice, and check out our Code of Conduct.
Balaclava is a new contributor. Be nice, and check out our Code of Conduct.
Balaclava is a new contributor. Be nice, and check out our Code of Conduct.
Balaclava is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Code Review Stack Exchange!
- 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.
Use MathJax to format equations. MathJax reference.
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%2fcodereview.stackexchange.com%2fquestions%2f215464%2fscript-that-fixes-yml-sids-to-be-simplified-for-production%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