Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!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; 'else:': 0.03; 'output': 0.05; 'column': 0.07; 'subject:adding': 0.07; 'check,': 0.09; 'handful': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'trailing': 0.09; 'window?': 0.09; 'python': 0.11; 'assume': 0.14; "'.txt',": 0.16; "'\\n')": 0.16; "'rb')": 0.16; "'w')": 0.16; 'bryan': 0.16; 'csv': 0.16; 'empty.': 0.16; 'output?': 0.16; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'slash': 0.16; 'subject:.txt': 0.16; 'subject:after': 0.16; 'varnames': 0.16; 'exception': 0.16; 'files.': 0.16; 'fix': 0.17; 'wrote:': 0.18; 'trying': 0.19; 'code,': 0.22; 'import': 0.22; 'print': 0.22; 'header:User-Agent:1': 0.23; 'error': 0.23; 'rid': 0.24; 'header': 0.24; 'looks': 0.24; "i've": 0.25; 'changes,': 0.26; 'gets': 0.27; 'header:X-Complaints-To:1': 0.27; "i'm": 0.30; 'code': 0.31; "skip:' 10": 0.31; 'prints': 0.31; 'file': 0.32; 'run': 0.32; 'running': 0.33; 'reader': 0.33; "i'd": 0.34; 'problem': 0.35; "can't": 0.35; 'but': 0.35; 'add': 0.35; 'charset :us-ascii': 0.36; 'should': 0.36; 'two': 0.37; 'being': 0.38; 'loss': 0.38; 'skip:o 20': 0.38; 'to:addr:python-list': 0.38; 'files': 0.38; 'issue': 0.38; 'does': 0.39; 'generating': 0.39; 'sure': 0.39; 'to:addr:python.org': 0.39; 'received:org': 0.40; 'how': 0.40; 'even': 0.60; 'is.': 0.60; 'new': 0.61; "you're": 0.61; 'show': 0.63; 'finally': 0.65; 'here': 0.66; 'between': 0.67; 'combining': 0.68; 'date,': 0.68; 'results': 0.69; 'export': 0.74; 'hey,': 0.75; "skip:' 180": 0.84; 'thrown,': 0.84; 'time)': 0.91; 'dirty': 0.93 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Dave Angel Subject: Re: *.csv to *.txt after adding columns Date: Wed, 18 Sep 2013 02:18:46 +0000 (UTC) References: <41edba54-31d3-48ad-a50f-41f87f32d251@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Gmane-NNTP-Posting-Host: 174.32.174.35 User-Agent: XPN/1.2.6 (Street Spirit ; Linux) X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 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: 58 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1379470752 news.xs4all.nl 15864 [2001:888:2000:d::a6]:42642 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:54347 On 17/9/2013 21:42, Bryan Britten wrote: > Hey, gang, I've got a problem here that I'm sure a handful of you will know how to solve. I've got about 6 *.csv files that I am trying to open; change the header names (to get rid of spaces); add two new columns, which are just the results of a string.split() command; drop the column I just split; and then finally export to *.txt files. Here's the code I'm using: > > import os > import csv > > > fileHandle = 'Path/To/Data' > varNames = 'ID\tCaseNum\tDate\tTime\tBlock\tIUCR\tPrimaryType\tDescription\tLocDesc\tArrest\tDomestic\tBeat\tDistrict\tWard\tCommArea\tFBICode\tXCoord\tYCoord\tYear\tUpdatedOn\tLat\tLong\tLoc\n' > > for csvFile in os.listdir(fileHandle): > outFile = open(fileHandle + os.path.splitext(csvFile)[0] + '.txt', 'w') > inFile = open(fileHandle + csvFile, 'rb') > reader = csv.reader(inFile, delimiter=',') > rowNum = 0 > for row in reader: > if rowNum == 0: > outFile.write(varNames) > rowNum += 1 > else: > date, time = row[2].split() > row.insert(3, date) > row.insert(4, time) > row.remove(row[2]) > outFile.write('\t'.join(row) + '\n') > outFile.close() > inFile.close() > > > The issue I'm having is that the *.txt files I'm generating are empty. I assume some unraised error is being thrown, How can you NOT know if an exception is being raised? How are you running the code, in a terminal window? Can't you just see what gets printed (as stderr)? > but I'm new to Python and am self taught, so I don't know where to look > or how to troubleshoot. > > When I run the code on just one file and print the output instead of writing it, it looks exactly like what I'd want. So I'm at a loss for where the problem is. You describe two changes, but don't show them. How about you do them one at a time, or perhaps even better, add prints so it both does the file(s) AND prints the output? What I think is happening is that you're missing the path separator between the "Path/To/Data" and the basename. You should be combining those with os.path.join(), not with + For a quick & dirty check, add a trailing slash to the fileHandle. But that's not the right way to fix it. -- DaveA