Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #26238

Re: newbie: write content in a file (server-side)

Newsgroups comp.lang.python
Date 2012-07-30 02:50 -0700
References <98f9b4a6-b797-40f3-a919-89c2d4fb4496@googlegroups.com> <mailman.2692.1343574970.4697.python-list@python.org>
Subject Re: newbie: write content in a file (server-side)
From Thomas Kaufmann <tokauf@googlemail.com>
Message-ID <mailman.2721.1343641814.4697.python-list@python.org> (permalink)

Show all headers | View raw


Am Sonntag, 29. Juli 2012 17:16:11 UTC+2 schrieb Peter Otten:
> Thomas Kaufmann wrote:
> 
> 
> 
> > I send from a client file content to my server (as bytes). So far so good.
> 
> > The server receives this content complete. Ok. Then I want to write this
> 
> > content to a new file. It works too. But in the new file are only the
> 
> > first part of the whole content.
> 
> > 
> 
> > What's the problem.
> 
> 
> 
> > Here's my server code:
> 
> 
> 
> >         while True:
> 
> >             bytes = self.request.recv(4096)
> 
> >             if bytes:
> 
> >                 s  = bytes.decode("utf8")
> 
> >                 print(s)
> 
> >                 li = s.split("~")
> 
> >                 with open(li[0], 'w') as fp:
> 
> >                     fp.write(li[1])
> 
> 
> 
> - Do you ever want to leave the loop?
> 
> 
> 
> - You calculate a new filename on every iteration of the while loop -- 
> 
> probably not what you intended to do.
> 
> 
> 
> - The "w" argument tells Python to overwrite the file if it exists. You 
> 
> either need to keep the file open (move the with... out of the loop) or open 
> 
> it with "a".
> 
> 
> 
> - You may not receive the complete file name on the first iteration of the 
> 
> while loop.
> 
> 
> 
> - The bytes buffer can contain incomplete characters, e. g.:
> 
> 
> 
> >>> data = b"\xc3\xa4"
> 
> >>> data.decode("utf-8")
> 
> 'รค'
> 
> >>> data[:1].decode("utf-8")
> 
> Traceback (most recent call last):
> 
>   File "<stdin>", line 1, in <module>
> 
> UnicodeDecodeError: 'utf8' codec can't decode byte 0xc3 in position 0: 
> 
> unexpected end of data


Thanks Peter. It helps;-).

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

newbie: write content in a file (server-side) Thomas Kaufmann <tokauf@googlemail.com> - 2012-07-29 07:16 -0700
  Re: newbie: write content in a file (server-side) Peter Otten <__peter__@web.de> - 2012-07-29 17:16 +0200
    Re: newbie: write content in a file (server-side) Thomas Kaufmann <tokauf@googlemail.com> - 2012-07-30 02:50 -0700
    Re: newbie: write content in a file (server-side) Thomas Kaufmann <tokauf@googlemail.com> - 2012-07-30 02:50 -0700
  Re: newbie: write content in a file (server-side) Thomas Kaufmann <tokauf@googlemail.com> - 2012-07-30 02:51 -0700

csiph-web