Trying to run a program within a python script on multiple output files creating by the same script
Peter Otten
__peter__ at web.de
Mon Apr 24 15:51:38 EDT 2017
Unaiza Batool wrote:
> i'm confused here as the script gives an error saying simple_to_fasta and
> fasta_to_mafft are not defined.
You have to write this functions yourself (I gave one example) and make sure
that they are defined before the 'for barcode' loop.
> How do I combine the part of infile,
> outfile with the conversion. You said it should go in the for barcode
> loop? Or just it just go after infname has it's correct value or just
> before each command when the new output file is needed?
A sketch of the final script (pseudo code, not runnable Python):
for barcode in barcodes
write simple file
convert simple file to fasta
convert fasta file to mafft
etc
To illustrate the idea here's a runnable example that reads words from a
file into individual files, then converts them to upper case, then
intersperses them with "-":
$ ls
demo.py words.txt
$ cat words.txt
the
quick
brown
fox
$ cat demo.py
def convert_to_upper(infile, outfile):
with open(infile) as instream:
with open(outfile, "w") as outstream:
outstream.write(instream.read().upper())
def convert_to_interspersed(infile, outfile):
with open(infile) as instream:
with open(outfile, "w") as outstream:
outstream.write("-".join(instream.read()))
with open("words.txt") as words:
for word in words:
word = word.strip()
filename = word
with open(filename, "w") as f:
f.write(word)
convert_to_upper(filename, filename + ".upper")
convert_to_interspersed(
filename + ".upper",
filename + ".interspersed"
)
$ python demo.py
$ ls
brown fox quick.interspersed the.upper
brown.interspersed fox.interspersed quick.upper words.txt
brown.upper fox.upper the
demo.py quick the.interspersed
$ cat quick.interspersed
Q-U-I-C-K$
More information about the Python-list
mailing list