Hexbin

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • MaximusBrood

    Hexbin

    Hi,

    Im a newcomer to Python and I've got some error that I totaly dont
    understand.

    I've made a program that is made to extract a couple of binhex files.

    Here is my sourccode:

    import binhex, os
    current = os.getcwd() #Gets current cwd
    files = os.path.join(cu rrent, "files") #joins current path with path
    files
    for filename in os.listdir(file s): #checks every file in DIR: files
    os.chdir(files) #changes dir 2 files
    file2 = win32file.Creat eFile(filename, win32file.GENER IC_READ, \
    0, None, win32file.OPEN_ EXISTING, 0, None ) #opens hexbin file
    filename2 = filename+".exe" #changes filename to .exe extention
    binhex.HexBin(f ile2, filename2) #translate hexed file 2 binary

    If I run this one, an exeption is raised:

    Traceback (most recent call last):
    File
    "C:\Python23\Li b\site-packages\python win\pywin\frame work\scriptutil s.py",
    line 407, in ImportFile
    exec codeObj in __main__.__dict __
    File "<auto import>", line 1, in ?
    File "C:\WINDOWS\tem p123\Stuf\all2. py", line 9, in ?
    binhex.HexBin(f ile2, filename2) #translate hexed file 2 binary
    TypeError: __init__() takes exactly 2 arguments (3 given)

    I've got only 2 arguments, but python thinks I've got there 3...

    Can anybody help me? (maybe its a stupid question but i'm only a newbie =) )
    I'm running on Win XP Home


  • Peter Hansen

    #2
    Re: Hexbin

    MaximusBrood wrote:
    [color=blue]
    > Im a newcomer to Python and I've got some error that I totaly dont
    > understand.[/color]
    [...][color=blue]
    > If I run this one, an exeption is raised:
    >
    > Traceback (most recent call last):
    > File
    > "C:\Python23\Li b\site-packages\python win\pywin\frame work\scriptutil s.py",
    > line 407, in ImportFile
    > exec codeObj in __main__.__dict __
    > File "<auto import>", line 1, in ?
    > File "C:\WINDOWS\tem p123\Stuf\all2. py", line 9, in ?
    > binhex.HexBin(f ile2, filename2) #translate hexed file 2 binary
    > TypeError: __init__() takes exactly 2 arguments (3 given)
    >
    > I've got only 2 arguments, but python thinks I've got there 3...[/color]

    Here's my quickie response, since I don't see that anyone else
    has tried to reply as of yet. If this doesn't do it, I can
    look into it further tomorrow.

    The definition of __init__ always looks like this:

    def __init__(self, ...):

    where ... represents zero or more arguments. Note that the
    "self" argument counts as one for purposes of the error message,
    so if it says it wants exactly two arguments, that means it
    really wants only one argument in addition to self.

    I don't know what binhex.HexBin() looks like, but it appears to
    be different than what you think. Taking a look at the source
    in python/lib/binhex.py might help you... find the __init__
    method for class HexBin and you may solve your own problem
    once you learn what the one non-self argument is expected
    to be.

    Also checking the docs again might clear things up for you now.

    -Peter

    Comment

    Working...