'Writing a hashtag to a file

I am using a python script to create a shell script that I would ideally like to annotate with comments. If I want to add strings with hashtags in them to a code section like this:

with open(os.path.join("location","filename"),"w") as f:
    file = f.read()

file += """my_function() {{
if [ $# -eq 0 ]
then
echo "Please supply an argument"
return
fi
echo "argument is $1"
}}
"""
with open(os.path.join("location","filename"),"w") as f:
    f.write(file)

what is the best way I can accomplish this?



Solution 1:[1]

In terms of your wider goal, to write a file with a bash function file from a Python script seems a little wayward.

This is not really a reliable practise, if your use case specifically requires you to define a bash function via script, please explain your use case further. A cleaner way to do this would be:

Define an .sh file and read contents in from there:

# function.sh

my_function() {{
 # Some code
}}

Then in your script:

with open('function.sh', 'r') as function_fd:
 # Opened in 'append' mode so that content is automatically appended
 with open(os.path.join("location","filename"), "a") as target_file: 
   target_file.write(function_fd.read())

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Scott Anderson