Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!feeder.news-service.com!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'advance,': 0.07; 'sanity': 0.07; 'script,': 0.07; 'subject:when': 0.07; 'append': 0.09; 'csv': 0.09; 'issue?': 0.09; 'statement.': 0.09; 'trailing': 0.09; '~ethan~': 0.09; 'stored': 0.13; 'wrote:': 0.15; '"m"': 0.16; '2:17': 0.16; 'columns': 0.16; 'row': 0.16; 'rows': 0.16; 'strangely': 0.16; 'subject:CSV': 0.16; 'subject:manipulating': 0.16; 'cc:addr:python-list': 0.16; 'pm,': 0.16; 'script.': 0.19; '(which': 0.20; 'cc:2**0': 0.21; 'column': 0.22; 'file,': 0.22; 'filter': 0.22; 'cc:no real name:2**0': 0.22; 'header:In-Reply- To:1': 0.22; 'hourly': 0.23; 'appear': 0.23; 'extract': 0.25; 'received:169': 0.25; 'tried': 0.27; 'seeing': 0.28; 'all,': 0.28; 'correct': 0.29; 'script': 0.29; 'fix': 0.29; 'second': 0.29; 'cc:addr:python.org': 0.30; 'example': 0.30; 'values,': 0.30; 'looks': 0.30; 'thanks': 0.31; 'values': 0.31; 'remaining': 0.32; "i've": 0.33; 'instead': 0.34; 'there': 0.34; 'however,': 0.34; 'thank': 0.35; "isn't": 0.35; 'probably': 0.35; 'actual': 0.35; 'data,': 0.35; 'format.': 0.35; 'charset:us-ascii': 0.36; 'file': 0.36; 'data.': 0.36; 'issue': 0.37; 'date,': 0.37; 'some': 0.37; 'but': 0.37; 'several': 0.37; 'subject:: ': 0.38; 'returning': 0.38; 'think': 0.38; 'two': 0.38; 'should': 0.39; 'header:Mime- Version:1': 0.39; 'data': 0.39; 'ways': 0.39; 'missing': 0.40; 'mark': 0.40; 'third': 0.40; 'your': 0.60; 'header:Message-Id:1': 0.61; 'lost': 0.73; 'saving': 0.74; 'station': 0.82; 'ethan,': 0.84; 'notepad,': 0.84; 'temperature': 0.93 Subject: Re: losing-end-of-row values when manipulating CSV input Mime-Version: 1.0 (Apple Message framework v1082) Content-Type: text/plain; charset=us-ascii From: Neil Berg In-Reply-To: <4E1E0B75.3000304@stoneleaf.us> Date: Wed, 13 Jul 2011 14:19:21 -0700 Content-Transfer-Encoding: quoted-printable References: <4E1E0B75.3000304@stoneleaf.us> To: Ethan Furman X-Mailer: Apple Mail (2.1082) X-Probable-Spam: no X-Spam-Report: none X-Scanned-By: smtp.ucla.edu on 169.232.46.245 Cc: python-list@python.org X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 69 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1310591889 news.xs4all.nl 23980 [2001:888:2000:d::a6]:59498 X-Complaints-To: abuse@xs4all.nl Xref: x330-a1.tempe.blueboxinc.net comp.lang.python:9440 Ethan, Thank you for this tip- you are correct that I saved the data as rich = text. I remade the files in VI instead of TextEdit, which allowed me to = write a true csv file and the script works as expected now. =20 Thanks again, Neil On Jul 13, 2011, at 2:17 PM, Ethan Furman wrote: > Neil Berg wrote: >> Hello all, >>=20 >> I am having an issue with my attempts to accurately filter some data = from a CSV file I am importing. I have attached both a sample of the = CSV data and my script. =20 >>=20 >> The attached CSV file contains two rows and 27 columns of data. The = first column is the station ID "BLS", the second column is the sensor = number "4", the third column is the date, and the remaining 24 columns = are hourly temperature readings.=20 >>=20 >> In my attached script, I read in row[3:] to extract just the = temperatures, do a sanity check to make sure there are 24 values, remove = any missing or "m" values, and then append the non-missing values into = the "hour_list". =20 >>=20 >> Strangely the the first seven rows appear to be empty after reading = into the CSV file, so that's what I had to incorporate the if len(temps) = =3D=3D 24 statement. =20 >>=20 >> But the real issue is that for days with no missing values, for = example the second row of data, the length of the hour_list should be = 24. My script, however, is returning 23. I think this is because the = end-of-row-values have a trailing "\". This must mark these numbers as = non-digits and are lost in my "isdig" filter line. I've tried several = ways to remove this trailing "\", but to no success.=20 >>=20 >> Do you have any suggestions on how to fix this issue? >>=20 >> Many thanks in advance, >>=20 >> Neil Berg >>=20 >>=20 > Your 'csv' file isn't -- it looks like rich text. An actual csv file=20= > looks more like this (which is probably what you're seeing in notepad,=20= > but is not what is stored on disk): >=20 > = 8<------------------------------------------------------------------------= ------------ > = BLS,4,19981101,37,m,36,34,36,35,34,34,35,36,38,39,43,42,42,42,38,36,34,32,= 33,33,35,34 > = BLS,4,19981102,34,32,33,32,34,32,33,32,34,38,40,41,44,47,43,42,39,36,35,35= ,36,36,35,33 > = 8<------------------------------------------------------------------------= ------------ >=20 > Try saving in text-only format. >=20 > ~Ethan~