Python Jumpstart by Building 10 Apps Transcripts
Chapter: App 6: LOLCat Factory
Lecture: LOLCat App on Linux

Login or purchase this course to watch this video and the rest of the course contents.
0:00 Here we are in Ubuntu,
0:02 let's try to call open and pass the folder and see what happens.
0:05 Couldn't get a file descriptor referring to the console,
0:11 that's not a super user experience,
0:13 so what are we going to do. Well, like I said,
0:16 we need to run a different open command on Linux,
0:19 different one on OS X and a different one on Windows,
0:21 now there are variety ways to determine what basic platform you are working on
0:26 we could go and import the OS module and say OS.name
0:30 and it will say pause x for Linux, and nt for Windows,
0:34 but it doesn't distinguish between OS X and Linux.
0:38 So we need another way which we can get with this platform module
0:41 so we can say if platform.system
0:45 now platform is another module we have to import so again
0:49 we'll let PyCharm do that.
0:51 You have to kind of experiment with it to see what it returns
0:54 but on OS X it returns Darwin, on Linux it returns Linux
0:58 and on Windows it returns Windows,
1:00 so that should be pretty easy,
1:02 let's say Darwin if it's Darwin we are going to do what
1:05 we have already been doing, that was great,
1:07 otherwise, we want to come here and say elif it returns Windows
1:13 we'll say start and elif if it returns Linux we'll say xdg-open
1:21 and finally we'll do an else and say print we don't support your OS.
1:28 And we could even show it to you.
1:32 Like so, now I suppose spelling Darwin correctly would help, wouldn't it?
1:36 Ok, so OS X, Darwin, Windows Windows, Linux Linux, let's try it.
1:43 Excellent, here are our cats let's have a look,
1:47 I are dune cat, I control the spice, kkkkkkkkk cat and so on
1:51 now notice one of these is actually off,
1:53 I know that one of these images actually is a gif not a jpg
1:56 and apparently this little viewer doesn't understand that
1:59 from the metadata in the header it just looks at that extension, whatever
2:03 that's not really a big problem
2:05 we'd have to check what the file extension is when we save it.
2:08 So pretty cool, we were able to use platform.sys
2:10 to determine what sub-process to call.