User Input on Python Script
I'm new to python, but I have a script that works as needed. However, some of these fields need to be updated with new data each usage: Filepath, Description, and External-Identifier.
What is the best way to enter this data, short of rewriting the python script each time I need it? I was thinking something like a GUI user-input form, but I'm not sure how to do this.
I'm using the Library of Congress's BagIt tool (Python). Here is the script:
import bagit
# load the bag
bag = bagit.Bag('<FILEPATH>')
# update bag info metadata
bag.info['Source-Organization'] = ['University Archives']
bag.info['Organization-Address'] = ["#"]
bag.info['Contact-Phone'] = ['#']
bag.info['Contact-Email'] = ['#']
bag.info['Description'] = ['#DESCRIPTION#']
bag.info['External-Identifier'] = ['#UUID#']
bag.save(manifests=True)
Any help is greatly appreciated. Thanks!
UPDATE. Thanks to the help, here is a working version of the UDbaginfo.py script. This updates bag-info.txt and updates the bag manifest.
Here is the code to update the bag-info.txt file for LOC Bagit (Python version)
import bagit
fpath = input("Enter the file path:")
bagDes = input("Enter the Description:")
bagUUID = input("Enter the UUID:")
# load the bag
bag = bagit.Bag(fpath)
# update bag info metadata
bag.info['Source-Organization'] = ['University Archives']
bag.info['Organization-Address'] = ["1000 North Ave. Nowhere, State.
33333"]
bag.info['Contact-Phone'] = ['555-555-5555']
bag.info['Contact-Email'] = ['archives@university.edu']
bag.info['Description'] = [bagDes]
bag.info['External-Identifier'] = [bagUUID]
bag.save(manifests=True)
python
add a comment |
I'm new to python, but I have a script that works as needed. However, some of these fields need to be updated with new data each usage: Filepath, Description, and External-Identifier.
What is the best way to enter this data, short of rewriting the python script each time I need it? I was thinking something like a GUI user-input form, but I'm not sure how to do this.
I'm using the Library of Congress's BagIt tool (Python). Here is the script:
import bagit
# load the bag
bag = bagit.Bag('<FILEPATH>')
# update bag info metadata
bag.info['Source-Organization'] = ['University Archives']
bag.info['Organization-Address'] = ["#"]
bag.info['Contact-Phone'] = ['#']
bag.info['Contact-Email'] = ['#']
bag.info['Description'] = ['#DESCRIPTION#']
bag.info['External-Identifier'] = ['#UUID#']
bag.save(manifests=True)
Any help is greatly appreciated. Thanks!
UPDATE. Thanks to the help, here is a working version of the UDbaginfo.py script. This updates bag-info.txt and updates the bag manifest.
Here is the code to update the bag-info.txt file for LOC Bagit (Python version)
import bagit
fpath = input("Enter the file path:")
bagDes = input("Enter the Description:")
bagUUID = input("Enter the UUID:")
# load the bag
bag = bagit.Bag(fpath)
# update bag info metadata
bag.info['Source-Organization'] = ['University Archives']
bag.info['Organization-Address'] = ["1000 North Ave. Nowhere, State.
33333"]
bag.info['Contact-Phone'] = ['555-555-5555']
bag.info['Contact-Email'] = ['archives@university.edu']
bag.info['Description'] = [bagDes]
bag.info['External-Identifier'] = [bagUUID]
bag.save(manifests=True)
python
How do you envision this working? do you want to prompt in the console for user input, or have the inputs passed in as arguments when the script is initiated?
– G. Anderson
Nov 20 '18 at 17:47
Which ever would be easier. A prompt for user input would be fine though.
– user2824537
Nov 20 '18 at 17:50
You can prompt for user input with, for example,fpath=input("Enter the file path:")
which will save the input as a string to the variable
– G. Anderson
Nov 20 '18 at 17:52
add a comment |
I'm new to python, but I have a script that works as needed. However, some of these fields need to be updated with new data each usage: Filepath, Description, and External-Identifier.
What is the best way to enter this data, short of rewriting the python script each time I need it? I was thinking something like a GUI user-input form, but I'm not sure how to do this.
I'm using the Library of Congress's BagIt tool (Python). Here is the script:
import bagit
# load the bag
bag = bagit.Bag('<FILEPATH>')
# update bag info metadata
bag.info['Source-Organization'] = ['University Archives']
bag.info['Organization-Address'] = ["#"]
bag.info['Contact-Phone'] = ['#']
bag.info['Contact-Email'] = ['#']
bag.info['Description'] = ['#DESCRIPTION#']
bag.info['External-Identifier'] = ['#UUID#']
bag.save(manifests=True)
Any help is greatly appreciated. Thanks!
UPDATE. Thanks to the help, here is a working version of the UDbaginfo.py script. This updates bag-info.txt and updates the bag manifest.
Here is the code to update the bag-info.txt file for LOC Bagit (Python version)
import bagit
fpath = input("Enter the file path:")
bagDes = input("Enter the Description:")
bagUUID = input("Enter the UUID:")
# load the bag
bag = bagit.Bag(fpath)
# update bag info metadata
bag.info['Source-Organization'] = ['University Archives']
bag.info['Organization-Address'] = ["1000 North Ave. Nowhere, State.
33333"]
bag.info['Contact-Phone'] = ['555-555-5555']
bag.info['Contact-Email'] = ['archives@university.edu']
bag.info['Description'] = [bagDes]
bag.info['External-Identifier'] = [bagUUID]
bag.save(manifests=True)
python
I'm new to python, but I have a script that works as needed. However, some of these fields need to be updated with new data each usage: Filepath, Description, and External-Identifier.
What is the best way to enter this data, short of rewriting the python script each time I need it? I was thinking something like a GUI user-input form, but I'm not sure how to do this.
I'm using the Library of Congress's BagIt tool (Python). Here is the script:
import bagit
# load the bag
bag = bagit.Bag('<FILEPATH>')
# update bag info metadata
bag.info['Source-Organization'] = ['University Archives']
bag.info['Organization-Address'] = ["#"]
bag.info['Contact-Phone'] = ['#']
bag.info['Contact-Email'] = ['#']
bag.info['Description'] = ['#DESCRIPTION#']
bag.info['External-Identifier'] = ['#UUID#']
bag.save(manifests=True)
Any help is greatly appreciated. Thanks!
UPDATE. Thanks to the help, here is a working version of the UDbaginfo.py script. This updates bag-info.txt and updates the bag manifest.
Here is the code to update the bag-info.txt file for LOC Bagit (Python version)
import bagit
fpath = input("Enter the file path:")
bagDes = input("Enter the Description:")
bagUUID = input("Enter the UUID:")
# load the bag
bag = bagit.Bag(fpath)
# update bag info metadata
bag.info['Source-Organization'] = ['University Archives']
bag.info['Organization-Address'] = ["1000 North Ave. Nowhere, State.
33333"]
bag.info['Contact-Phone'] = ['555-555-5555']
bag.info['Contact-Email'] = ['archives@university.edu']
bag.info['Description'] = [bagDes]
bag.info['External-Identifier'] = [bagUUID]
bag.save(manifests=True)
python
python
edited Nov 21 '18 at 1:25
user2824537
asked Nov 20 '18 at 17:38
user2824537user2824537
11
11
How do you envision this working? do you want to prompt in the console for user input, or have the inputs passed in as arguments when the script is initiated?
– G. Anderson
Nov 20 '18 at 17:47
Which ever would be easier. A prompt for user input would be fine though.
– user2824537
Nov 20 '18 at 17:50
You can prompt for user input with, for example,fpath=input("Enter the file path:")
which will save the input as a string to the variable
– G. Anderson
Nov 20 '18 at 17:52
add a comment |
How do you envision this working? do you want to prompt in the console for user input, or have the inputs passed in as arguments when the script is initiated?
– G. Anderson
Nov 20 '18 at 17:47
Which ever would be easier. A prompt for user input would be fine though.
– user2824537
Nov 20 '18 at 17:50
You can prompt for user input with, for example,fpath=input("Enter the file path:")
which will save the input as a string to the variable
– G. Anderson
Nov 20 '18 at 17:52
How do you envision this working? do you want to prompt in the console for user input, or have the inputs passed in as arguments when the script is initiated?
– G. Anderson
Nov 20 '18 at 17:47
How do you envision this working? do you want to prompt in the console for user input, or have the inputs passed in as arguments when the script is initiated?
– G. Anderson
Nov 20 '18 at 17:47
Which ever would be easier. A prompt for user input would be fine though.
– user2824537
Nov 20 '18 at 17:50
Which ever would be easier. A prompt for user input would be fine though.
– user2824537
Nov 20 '18 at 17:50
You can prompt for user input with, for example,
fpath=input("Enter the file path:")
which will save the input as a string to the variable– G. Anderson
Nov 20 '18 at 17:52
You can prompt for user input with, for example,
fpath=input("Enter the file path:")
which will save the input as a string to the variable– G. Anderson
Nov 20 '18 at 17:52
add a comment |
1 Answer
1
active
oldest
votes
Assuming you are using Python 3 you could use input()
. This would allow you to validate as well, i.e.:
#Validate
validUUID = False
while not (validUUID):
temp_uuid = input("UUID:")
try:
int(temp_uuid)
bag.info['External-Identifier'] = temp_uuid
validUUID = True
Although the above method is only in a terminal context. Alternatively you could just pass arguments to the script
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%2f53398559%2fuser-input-on-python-script%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
Assuming you are using Python 3 you could use input()
. This would allow you to validate as well, i.e.:
#Validate
validUUID = False
while not (validUUID):
temp_uuid = input("UUID:")
try:
int(temp_uuid)
bag.info['External-Identifier'] = temp_uuid
validUUID = True
Although the above method is only in a terminal context. Alternatively you could just pass arguments to the script
add a comment |
Assuming you are using Python 3 you could use input()
. This would allow you to validate as well, i.e.:
#Validate
validUUID = False
while not (validUUID):
temp_uuid = input("UUID:")
try:
int(temp_uuid)
bag.info['External-Identifier'] = temp_uuid
validUUID = True
Although the above method is only in a terminal context. Alternatively you could just pass arguments to the script
add a comment |
Assuming you are using Python 3 you could use input()
. This would allow you to validate as well, i.e.:
#Validate
validUUID = False
while not (validUUID):
temp_uuid = input("UUID:")
try:
int(temp_uuid)
bag.info['External-Identifier'] = temp_uuid
validUUID = True
Although the above method is only in a terminal context. Alternatively you could just pass arguments to the script
Assuming you are using Python 3 you could use input()
. This would allow you to validate as well, i.e.:
#Validate
validUUID = False
while not (validUUID):
temp_uuid = input("UUID:")
try:
int(temp_uuid)
bag.info['External-Identifier'] = temp_uuid
validUUID = True
Although the above method is only in a terminal context. Alternatively you could just pass arguments to the script
answered Nov 20 '18 at 17:49
SpydernazSpydernaz
2710
2710
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%2f53398559%2fuser-input-on-python-script%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
How do you envision this working? do you want to prompt in the console for user input, or have the inputs passed in as arguments when the script is initiated?
– G. Anderson
Nov 20 '18 at 17:47
Which ever would be easier. A prompt for user input would be fine though.
– user2824537
Nov 20 '18 at 17:50
You can prompt for user input with, for example,
fpath=input("Enter the file path:")
which will save the input as a string to the variable– G. Anderson
Nov 20 '18 at 17:52