Leftover-Waffle Posted September 26, 2022 Share Posted September 26, 2022 Hello! I am a newbie to writing my own scripts/Alfred workflows, even though I have used Alfred for a long while. I have been searching everywhere for how to pass a variable in Alfred to a variable in a Python script, but I couldn't find anything. I figured this was the best place to ask. This is the script I wrote to add {query} to a specific line in a file, I personally use it for logging in my daily note in Obsidian. #!/usr/bin/python3 import sys import os.path import time # Convert Alfred variables to Python query = sys.argv[1] sys.stdout.write(query) # Create "save_path" variable for Daily Notes folder save_path = "/Users/jackverstraate/Obsidian/Daily Notes/" # Create "file_name" variable with YYYY-MM-DD format file_name = str((time.strftime("%Y-%m-%d"))) # Join "save_path" and "file_name" to create completeName completeName = os.path.join(save_path, file_name) + ".md" # Count the number of lines in a file to create variable "line_count" with open(completeName, 'r') as fp: for count, line in enumerate(fp): pass line_count = (count + 1) # Read the contents of a file to create variable "contents" with open(completeName, "r") as f: contents = f.readlines() # Insert "query" at "line_count" minus 22 with current time contents.insert((line_count) - 22, "- **" + (time.strftime("%I:%M %p")) + "** – " + query + "\n") with open(completeName, "w") as f: contents = "".join(contents) f.write(contents) I want the variable "save_path" to be passed from Alfred instead of manually typing a string for the user path. Can you help me out? Link to comment
vitor Posted September 26, 2022 Share Posted September 26, 2022 Welcome @Leftover-Waffle, First setup the User Configuration with a File Picker. Then in your code: save_path = os.getenv("THE_VARIABLE_NAME") (see Reading Environment Variables). Leftover-Waffle 1 Link to comment
Leftover-Waffle Posted September 27, 2022 Author Share Posted September 27, 2022 @vitor Thank you so much, that did the trick! Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now