(top-posting and offline response fixed)
On Sun, Feb 3, 2013 at 11:07 PM, Dave Angel <da...@davea.name> wrote:
On 02/03/2013 02:26 PM, Spyros Charonis wrote:
Hello Pythoners,
I am experiencing a strange result with the pickle module when using it to
write certain results to a separate file.
In short, I have a program that reads a file, finds lines which satisfy
some criteria, and extracts those lines, storing them in a list. I am
trying to write this list to a separate file.
The list of extracted lines looks like this:
ATOM 1 N GLN A 1 29.872 13.384 54.754 1.00 60.40
N
ATOM 2 CA GLN A 1 29.809 11.972 54.274 1.00 58.51
C
ATOM 3 C GLN A 1 28.376 11.536 54.029 1.00 55.13
C
The output stored from the call to the pickle.dump method, however, looks
like this:
(lp0
S'ATOM 1 N GLN A 1 29.872 13.384 54.754 1.00 60.40
N \r\n'
p1
aS'ATOM 2 CA GLN A 1 29.809 11.972 54.274 1.00 58.51
C \r\n'
p2
aS'ATOM 3 C GLN A 1 28.376 11.536 54.029 1.00 55.13
C \r\n'
The code I am using to write the output to an external file goes as
follows:
def export_antibody_chains():
''' EXPORT LIST OF EXTRACTED CHAINS TO FILE '''
chains_file = open(query + '_Chains', 'wb')
pickle.dump(ab_chains, chains_file) # ab_chains is global
chains_file.close()
return
Does anyone know why the strings lp0, S', aS' are showing up?
Pickle stores the type of each variable, as well as the value, and stores
it in a way as to make it easy to "unpickle" it.
On 02/03/2013 06:17 PM, Spyros Charonis wrote:
Thank you Dave,
Is there any way to circumvent this so that I get the list rendered
normally? Many thanks.
You'd better define "normally." Pickle's output is normal for pickle.
Perhaps you want the values to be human readable instead.
One possibility of many: If you know that all the values in the list
are strings, and you want to produce a text file, with one such string
per line, then try:
outfile = open( "filename.txt", 'wt")
for line in mylist:
outfile.write( line + "\n")
outfile.close()
There are ways to clean that up, but since you haven't specified your
python version, that'll do for a first attempt.
--
DaveA
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor