Hi everybody, I am using gzipped files quite extensively and cannot figure out how I can close (or reuse) connections. Example:> for(i in 1:300) {cat(i, "\n"); a <- readLines(gzfile("file.gz"), n=1) }1 2 ... 46 47 Error in gzfile("~/tyyq/andmebaasiq/ETU/ETU1997.tsv.gz") : all connections are in use To use just gzfile without any open/close should be OK as the help states: ... In general functions using connections will open them if they are not open, but then close them again, so to leave a connection open call open explicitly. I have also experimented with explicit open/close but without any more success, though, R claims that the connections will be closed. Any ideas? Is it my misunderstanding? What exactly means a connection is "in use"? Thanks in advance, Ott> version_ platform i686-pc-linux-gnu arch i686 os linux-gnu system i686, linux-gnu status major 2 minor 1.1 year 2005 month 06 day 20 language R -- Ott Toomet, PhD Research Fellow Dept. of Economics Tartu University Narva 4 - A123 Tartu 51009 Estonia otoomet (a) ut ee ph: (+372) 7 37 6374 fax: (+372) 7 37 6312 ------------------------------------------- (o_ (*_ (O_ (o< -! //\ //\ //\ //\ V_/_ V_/_ V_/_ V_/_ standard drunken shocked noisy penguin penguin penguin penguin
Try this con <- gzfile("file.gz") a <- readLines(con, n=1) showConnections(all=TRUE) close(con) showConnections(all=TRUE) So the connection is opened and closed as it says, but not destroyed. You do need to call close() explicitly -- from the help file 'close' closes and destroys a connection. ^^^^^^^^^^^^ There are 'create - open - close - destroy' states for a connection. On Thu, 25 Aug 2005, Ott Toomet wrote:> Hi everybody, > > I am using gzipped files quite extensively and cannot figure out how I > can close (or reuse) connections. > > Example: > >> for(i in 1:300) {cat(i, "\n"); a <- readLines(gzfile("file.gz"), n=1) } > 1 > 2 > ... > 46 > 47 > Error in gzfile("~/tyyq/andmebaasiq/ETU/ETU1997.tsv.gz") : > all connections are in use > > To use just gzfile without any open/close should be OK as the help > states: > > ... In general functions using connections will open them if they are not > open, but then close them again, so to leave a connection open call > open explicitly. > > I have also experimented with explicit open/close but without any more > success, though, R claims that the connections will be closed. > > Any ideas? Is it my misunderstanding? What exactly means a > connection is "in use"?-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
Possibly Parallel Threads
- R CMD build and et_EE.UTF-8 locale -> invalid files (PR#10351)
- question about XML (package)
- bug in closing gzfile-opened connections?
- what does this err mean and how to solve it? Error in file(file, ifelse(append, "a", "w"))
- file reading problem unique to windows. Err info: Error in file(file, ifelse(append, "a", "w")). cannot open the connection