On Friday 9 Oct 2015 02:11 CEST, Dennis Lee Bieber wrote: > On Fri, 09 Oct 2015 00:03:36 +0200, Cecil Westerhof > <ce...@decebal.nl> declaimed the following: > >> I want to do the following Bash command in Python: sqlite3 >> spreekwoorden.sqlite "SELECT spreekwoord FROM spreekwoorden;" | >> sort > spreekwoorden2.txt >> >> The following does this in Python: >> sqlite_pipe = Popen( >> ( >> 'sqlite3', >> 'spreekwoorden.sqlite', >> 'SELECT spreekwoord FROM spreekwoorden;' >> ), >> stdout = PIPE >> ) >> Popen( >> ( >> 'sort', >> '--output=spreekwoorden2.txt', >> ), >> stdin = sqlite_pipe.stdout >> ) >> >> Is this the correct way, or is there a better way? >> > > Use the standard db-api interface for SQLite3 provided with > Python and avoid creating external processes? > > Heck, why rely on an external sort command when you can add > "ORDER BY spreekwoord" to the SQL statement.
My bad, I intended to mention that ORDER BY gives the wrong order (é comes after z and with sort it comes after e), so that is why I use the external sort command. > Test data (out of habit, I always create an autonumber primary > key) (this is shown as CSV): I am using that also, but when I add things to the database I just want to have a sorted file with all the proverbs (that is the meaning of spreekwoord) so I can use it to import everything again if need to be. The create statement: CREATE TABLE spreekwoorden ( spreekwoordID INTEGER PRIMARY KEY AUTOINCREMENT, spreekwoord TEXT UNIQUE NOT NULL, gebruikt TEXT DEFAULT CURRENT_DATE NOT NULL ) > fout = open("wordlist.txt", "w") Fout means wrong in Dutch. ;-) -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof -- https://mail.python.org/mailman/listinfo/python-list