Re: lies about OOP
> From: "Jive" <[EMAIL PROTECTED]> wrote: > Just how old *is* his school? I saw the light in the 70's. For those > of > you too young to remember, those were menacing and sinister days, when > pant > legs were too wide at the bottom, and the grotesque evil of "top down > programming" was on the land. But by '86, the Joy of OOP was widely > known. > Flowers bloomed and birds chirped. Pant legs narrowed. You had to go there. You had to put down my brother, the bell bottom. Next thing one knows you'll be maligning paisley (the artist's hand-drawn fractals...) or Fortran! Eric Pederson ::: domainNot="@something.com" domainIs=domainNot.replace("s","z") ePrefix="".join([chr(ord(x)+1) for x in "do"]) mailMeAt=ePrefix+domainIs ::: -- http://mail.python.org/mailman/listinfo/python-list
Re: The Industry choice
Cameron Laird wrote: > > Let me add a cautionary note, though: Big Companies, > including Oracle, Software AG, IBM, Cisco, and so on, have > adopted Tcl over and over. All of them still rely on Tcl > for crucial products. All of them also have employees who > sincerely wonder, "Tcl? Isn't that dead?" > > I offer this as a counter-example to the belief that Adop- > tion by a heavyweight necessarily results in widespread > acceptance. > -- I think the adoption of computer languages is quite complex, but one useful metaphorical model may be gravity, e.g. the clumpy universe of stars, with gravity working on different scales to shape the overall distribution of matter. Adoption by a heavyweight may have some effect if that force is allowed to operate on other bodies, but the overall distribution of "mass" is complex. In the practice of business, companies generally find a need to consciously limit methodological diversity as they grow in size. Control is usually made more centralized, but becomes more distant from the atom (programmer writing code) as the firm grows large, and entropy becomes the enemy, lower level entropy a source of uncertainty and risk. If so, there is some legitimate reason for trying to "standardize" on tools (i.e. programming languages). Less sophisticated business minds may latch onto the notion of gains from economies of scale, which is usually an easy sell (and good route for a fast career rise) but an overly simple optimization. Not to say that such restrictive mindsets and policies are inevitable, but they seem the prevailing wind. Preserving intellectual diversity and innovation may be critical to a big company in the long run, and allowing the use of (for example) Python would seem very in tune with those goals. It might be nice if it was widely understood (in IT) that Python was a language any competent programmer could pick up in an afternoon, such that Java, C, and Perl shops would not be concerned about the need for their staff to learn a new language. Eric Pederson "Linear? What is linear?" Digital M4 (music) http://www.songzilla.blogspot.com ::: domainNot="@something.com" domainIs=domainNot.replace("s","z") ePrefix="".join([chr(ord(x)+1) for x in "do"]) mailMeAt=ePrefix+domainIs ::: -- http://mail.python.org/mailman/listinfo/python-list
Re: The Industry choice
to other hat-makers. Should your > business soon flourish, so you'll need to hire a worker, that's where > you can soon meet all the local workers, relaxing with a glass of wine > at the local osteria after work, and start getting acquainted with > everybody, etc, etc... Right, and distribution in general is "clumpy"; i.e. one doesn't find the spatial distribution of people to be uniform (unless at saturation!) I'm decades behind on economics research, but I remember modeling clustering based on mass and distance (the gravity model). On a decision making basis there seems to be an aspect of it that is binary: (0) either give in to gravity and gain shared advantage as part of a massive object, or (1) choose an alternate "location" far enough away not to be much affected by the force of the massive objects, and try to build "mass" there. I suspect Python is a (1) in that regard, but I may be wrong. Gravity as a model of technology adoption appeals to me as I've been thinking about cosmology a fair bit, and I have grave suspicions that much of the universe's dark (and green) matter is in Redmond. Eric Pederson http://www.songzilla.blogspot.com ::: domainNot="@something.com" domainIs=domainNot.replace("s","z") ePrefix="".join([chr(ord(x)+1) for x in "do"]) mailMeAt=ePrefix+domainIs ::: -- http://mail.python.org/mailman/listinfo/python-list
Re: OT: MoinMoin and Mediawiki?
Paul Rubin wrote: > What I'm getting at is I might like to install MoinMoin now and > migrate to Mediawiki sometime later. Anyone have any thoughts about > whether that's a crazy plan? Disclaimer, I am neither using Moinmoin nor Mediawiki, and don't really have your answer. >From what I read, Mediawiki stores each page as "wikitext" in a MySQL >database; wikitext "is a mixture of content, markup, and metadata." It seems essentially what you'd need for migration is a mapping function and I do not know how complex the mapping between the systems would be. I could imagine migrating from Moinmoin to Mediawiki via a script looping through the Moinmoin files in a directory, modifying a copy of each, and storing them in MySQL. I suspect it's less painful to just start with the wiki you want to end up with, but if you're going to migrate between the two, won't Python come in handy! ;-) Eric Pederson http://www.songzilla.blogspot.com ::: domainNot="@something.com" domainIs=domainNot.replace("s","z") ePrefix="".join([chr(ord(x)+1) for x in "do"]) mailMeAt=ePrefix+domainIs ::: -- http://mail.python.org/mailman/listinfo/python-list
File objects? - under the hood question
I didn't come across any illuminating discussion via Google, thus my question here (though it may be a neophyte question.) I am interested in the workings under the hood of Python's access of "files". What is actually happening at the various stages when I create a file object and "read" it? (1)>>> f = file("C:/GuidosParrot.txt","r") (2)>>> hesjustsleeping = f.read() At (1) have I loaded the file from hard drive into RAM when I create the file object? What does this object know and how did it find it out? At (2) am I loading the file contents into RAM, or just assigning what is already in RAM to a variable? Where is the work split between the OS and Python? I assume the OS is responsible for "presenting" the file to Python, so perhaps the OS assembles this file from the blocks on disk and loads it into RAM at the time the file object is created? Or would the OS simply have pointers that can assemble the file, and pass those pointers to Python? Perhaps I've answered my question and the under-the-hood mechanics are handled on the OS side, and Python is just making requests of the OS... My brain-teaser: What I'd like to do is read the last ~2K of a large number of large files on arbitrary servers across the net, without having to read each file from the beginning (which would be slow and resource inefficient)... Eric Pederson http://www.songzilla.blogspot.com ::: domainNot="@something.com" domainIs=domainNot.replace("s","z") ePrefix="".join([chr(ord(x)+1) for x in "do"]) mailMeAt=ePrefix+domainIs : -- http://mail.python.org/mailman/listinfo/python-list
Re: File objects? - under the hood question
Jeremy responds: [kind enough not to mention I must have had only 10% of my brain cells functioning when I posted] > And note that with the possible exception of that last one, there is no > relationship between these two questions. Right, I just want there to be. > There is no argument you can pass to file() that will read > an > HTTP file. A file is a file, no matter where it resides; yes I know it's not that simple. Here the sort of thing (seek, then read) I think I want: >>> IDV2=open(("http://musicsite.com/song453.mp3","rb";)[:-128]) >>> song453.tags=IDV2.read() >>> len(song453.tags) 128 But it's not a Python problem. :-( Thanks for the responses and indulgence. I'm OK now - the repair man fixed the coffee pot. Eric Pederson http://www.songzilla.blogspot.com -- http://mail.python.org/mailman/listinfo/python-list
Re: The next Xah-lee post contest
> From: Arthur <[EMAIL PROTECTED]> > Not sure how Xah got himself into all this. One can easily see that Java programmers are geeks who secretly wanted to make the football team and are now trying to conform, ignoring their language's critical lack of Prolog syntax. Python coders, similarly, do not recognize that they may be violating several open source patents each time they write: "class(Object):", and both languages may become unusable when the Government changes the inheritance tax. Rather than throw stones or make fun, all but the closet Republicans should examine how poor Xah came to such a state of misunderstanding IPv8, and try to help him. >From Aahz tag line we have a clue: "19. A language that doesn't affect the way you think about programming,is not worth knowing." Â--Alan Perlis Further understanding will require research. Was it Perl that did this to Mr. Lee's brain, or perhaps it was trying to ascertain the web services "standard"? Was it a massive PHP program that simply grew beyond comprehendability and blew all normal circuits? Or perhaps an attempt to jump straight from Fortran 77 into Ruby? Perhaps we will never know the cause, but surely when the ill come to us we must prescribe something. Ah, perhaps if he will join us in a song we will all be OK: Python Choir: Lee's a lumberjack, and he's OK, He codes all night and he posts all day. XL: I cut down trees, I eat my lunch, I go to the lavatory. On Wednesdays I go shopping, And have buttered scones for tea. Python Choir: Lee cuts down trees, He eats his lunch, He goes to the lavatory. On Wednesdays he goes shopping, And have buttered scones for tea. Lees a lumberjack, and he's OK, He codes all night and he posts all day. XL: I cut down trees, I skip and jump, I like to press wild flowers. I put on women's clothing, And hang around in bars. Python Choir: Lee cuts down trees, he skips and jumps, He likes to press wild flowers. He puts on women's clothing And hangs around In bars??? Well. At least I feel better. For now. /Eric - sentenced to re-learn and write an application in Perl 5.0 What will that do to my mind? http://www.songzilla.blogspot.com ::: domainNot="@something.com" domainIs=domainNot.replace("s","z") ePrefix="".join([chr(ord(x)+1) for x in "do"]) mailMeAt=ePrefix+domainIs ::: -- http://mail.python.org/mailman/listinfo/python-list
Re: variable declaration
"Thomas Bartkus" wrote > As has been pointed out, it's not a big deal for a programmer who's > been > there, done that. But the original posters example is a beginners trap > for > certain. > > *If* Python were a "beginners language", then it would be missing one > of > it's training wheels. If you put training wheels on your bicycle, it's not going to be any good for moderately serious cycling. The OP was clearly not new to programming, and it was a hypothetical problem. We're all adults here (even my 12 year old!) - and we have only beginners in my house. This purported wart has never bothered me -- Python is so friendly to develop in. If this sort of code error bites my 12 year old, I'm sure he will be able to find it and feel good about fixing it. It's not the kind of code error that has you shutting down your computer at 4AM, perplexed and frustrated - those feelings are usually attributable to subtle, complex, dastardly language features (unexpected behavoirs). Just my opinion, of course. Among the great and enlightening posts in this thread, I liked this: QOTW? """We should concentrate on *real* problems, ones that exist in real code, not ones that mostly exist in wild-eyed prose that consists of predictions of pain and death that conspicuously fail to occur, no matter how many times they are repeated or we are exhorted to heed them or face our doom. """ http://groups-beta.google.com/group/comp.lang.python/messages/178fef06830cc779?thread_id=a75da70b0845b6fe&mode=thread&noheader=1#doc_178fef06830cc779 [Go PyPy!] Eric Pederson http://www.songzilla.blogspot.com ::: domainNot="@something.com" domainIs=domainNot.replace("s","z") ePrefix="".join([chr(ord(x)+1) for x in "do"]) mailMeAt=ePrefix+domainIs ::: -- http://mail.python.org/mailman/listinfo/python-list
Re: is this pythonic?
"Caleb Hattingh" <[EMAIL PROTECTED]> wrote: >In another > newsgroup, I could have been flamed for letting Simon know he helped > more > than just the OP with his post :) +1 OP asks, thousands are educated (perhaps). The group's generosity is greatly appreciated, even if that appreciation is under-expressed. -Anon (well, sort of) P.S. You mean this list isn't TFM? -- http://mail.python.org/mailman/listinfo/python-list
Python -- (just) a successful experiment?
Raise your hand if you think the best technology wins! For those of you with your hands in the air, tell me: if Python is so good, why has PHP achieved such greater adoption and mindshare? Why do web scripters still cling to their Perl, even in corporate environments? Why hasn't Python made inroads against Java? Why is Ruby, and Ruby on Rails, getting such strong play? Are these better programming languages, or is it other factors? On a whim I installed Ruby on Rails today - pretty much a one-click deal. It was a very slick (Windows) installation, as it automatically figured out and downloaded dependencies - there was no question it was properly installed, and I ended up with a couple "IDE"s for Ruby, examples, etc. Markedly better than installing Python - no contest - and this downloaded a useful and easy to employ application, with a clear path to show me how to use it. As I perused the tutorial like documentation, I realized I wasn't anxious to jump into the language (Ruby), but I saw that I could certainly achieve a quicker success putting together a web application with RoR than with (take your pick: Perl, Lisp, Java, etc. etc.) If my mind wasn't appreciative of the Python language, though, Ruby would have hooked me right there. While I perceive that the future of the language Python is in good development hands - well debated, and thoughtfully strategized; the Python accoutrements can be lacking. Imagine, if you will, a new car, that does 0-60 in 2 seconds, 60-0 in .2 seconds, has a top speed of 185 mph, corners on par with an F-1 car, costs no more than a Volkswagen Passat... but comes without tires or seats, and you have to install the electrics and brakes yourself. Sure, car geeks are going to love it, but you just are not going to see that many at the grocery store, or doing car pool duty, and no garage really works on them much... forget about finding parts, you have to make your own replacements. I am not saying Python is that car, but I do think that "Python", as opposed to "Python the computer language specification", is done a great disservice by the lack of certain accoutrements. I do not know if there are features of the language (specification or philosophy) which thwart the development of the complementary items, but I firmly believe that the lack of them is a factor in Python's ho-hum adoption rate. A good computer language is great, but it pales in comparison with what can be done with such a language. What is missing? Maybe: -- Automatic dependency handling -- Tightly coupled GUI package ("tightly coupled" ~= "Pythonic") -- High level IDE (i.e. intuitive drag and drop GUI builder) -- High level database framework (perhaps a mature, killer Dabo) -- Powerful web framework as good as the language (and simple enough for the PHP guys to use) -- Etc. Applications like Zope and Plone help drive more people toward the language, though the competition is stiff. Dozens of competing half baked tools/applications... they just confuse people and take up their time with decision paralysis, though they may be fun to write. Is it wrong to appreciate Python as a language, but want to have the nice accoutrements we see in some competing languages? EP Disclaimer: only recently downloaded Eric3 for Windows, and it looks good, but I haven't had time to learn it yet. Whatsup with the troll, though? :: domainNot="@something.com" domainIs=domainNot.replace("s","z") ePrefix="".join([chr(ord(x)+1) for x in "do"]) mailMeAt=ePrefix+domainIs ::: -- http://mail.python.org/mailman/listinfo/python-list
Re: variable declaration
Arthur artfully argued: > What if: > > There was a well conducted market survey conclusive to the effect that > adding optional strict variable declaration would, in the longer run, > increase Python's market share dramatically. It's always good to examine one's objectives and motives. I am an enthusiast for marketing Python, but why? Would I get something out of Python being the language du jour? If everyone starts using Python when I am an old hand with the language, will it elevate me? Is a world where people use a programming language called "Python" necessarily a better world? For me the answer to those questions is no. So what would I like? Just the option to use Python when and where it suits me and my tasks - and the continued excellent quality development and maintenance of Python and Python libraries. > It just would. Right! All the cool kids (and if you want to be popular you need to): smoke/smoke dope/get tatoo'd/fight/climb the water tower/get pierced/get drunk/call their girlsfriends a b!#ch/shop lift/ditch school/put their fingers into an electrical outlet Declare variables? Hey, what's one more compromise to get popular?! (I shudder thinking where that slippery slope leads) [Nothing above is meant to imply I haven't done stupid things; rather perhaps that I've already done more than enough to know better; and, by the way, I'm still not "popular". I'd hope GvR and the crew "keep Python Python"] Eric Pederson http://www.songzilla.blogspot.com -- http://mail.python.org/mailman/listinfo/python-list
Re: exercise: partition a list by equivalence
> From: "Xah Lee" <[EMAIL PROTECTED]> > > The GOTO statement from Perl has been messed up. hey, I didn't do it! > > This block: > Âfor group in interm: what do the funny little "Â"s stand for? Eric Pederson http://www.songzilla.blogspot.com ::: domainNot="@something.com" domainIs=domainNot.replace("s","z") ePrefix="".join([chr(ord(x)+1) for x in "do"]) mailMeAt=ePrefix+domainIs ::: -- http://mail.python.org/mailman/listinfo/python-list
Re: Impersonating other broswers...
Skip Montanaro <[EMAIL PROTECTED]> wrote > It doesn't look any easier to do this using urllib2. Seems like a > semi-obvious oversight for both modules. That suggests few people have > ever > desired this capability. my $.02: I have trouble believing few people have not desired this for two reasons: (1) some web sites will shut out user agents they do not recognize to preserve bandwidth or for other reasons; the right User Agent ID can be required to get the data one wants; (2) It seems like it is a worthwhile courtesy to identify oneself when spidering or data scraping, and the User Agent ID seems like the obvious way to do that. I'd guess (and like to think) that Python users are generally a little more concerned with such courtesies than the user population of some other languages. e.g. Your website might get a hit from: "Mozilla/5.0 (Songzilla MP3 Blog, http://songzilla.blogspot.com) Gecko/20041107 Firefox/1.0" And you'll get to decide whether to shut them out or not, but at least it won't seem like the black hats are attacking. Eric Pederson http://www.songzilla.blogspot.com ::: domainNot="@something.com" domainIs=domainNot.replace("s","z") ePrefix="".join([chr(ord(x)+1) for x in "do"]) mailMeAt=ePrefix+domainIs ::: -- http://mail.python.org/mailman/listinfo/python-list
Best way to make a list unique?
I have >>> listA=[1,2,3,4,5,4,3,4,3,2,1] and I want a list of only the unique members. This seems inefficient, but works fine over my small sample lists: >>> listA=[a for a in set(listA)] Is there a more efficient approach for cases where listA is large? Eric Pederson ::: domainNot="@something.com" domainIs=domainNot.replace("s","z") ePrefix="".join([chr(ord(x)+1) for x in "do"]) mailMeAt=ePrefix+domainIs ::: -- http://mail.python.org/mailman/listinfo/python-list
Re: How did you learn Python?
"Shawn Milo" wrote: > My point is, I don't want something that is going to explain the > basic > programming concepts, but does give a good introduction to > Python-specific > things. I think you might appreciate "Learning Python" as it's written very succinctly, but it goes through the language features pretty comprehensively. Very nicely written. Afterwards, the "Python Cookbook" might be useful, you can dip into it and discover better ways to do certain things, as you do them. Either book should be read next to the computer with IDLE open, IMO. The interpreter really makes learning by doing easy. I have not heard of a great Python design patterns type book, but you will see discussion of the essence of that subject on this list every day: advice on how to write more "Pythonic" code, how to design code that runs faster, and even just "how do I accomplish this?" answers. Having a project to code may be one of the best tools for learning python. Python code is cleaner by nature, and will encourage + facilitate "cleaner code think" if you let it. Definitely read some of the materials on the Python.org site, by Guido et. al. Introductions: http://python.org/doc/Intros.html Topic specific: http://python.org/topics/ FAQs: http://python.org/doc/faq/general.html Have fun! Eric Pederson ::: domainNot="@something.com" domainIs=domainNot.replace("s","z") ePrefix="".join([chr(ord(x)+1) for x in "do"]) mailMeAt=ePrefix+domainIs ::: -- http://mail.python.org/mailman/listinfo/python-list
Re: PajamaScript
Jerome (aka evil tofu) advised: > I wrote something called PajamaScript. Basically, it parses a text > file and looks for tags. Then it calls python to handle the > scripting. Why learn another language when you already know Python? > > > > This is fun! > > > The Date is . > The Time is . > > > > > > PajamaScript then calls the function "zdate" in module "misc" and the > output replaces the tag. This is not really tested in any production > system, just a proof of concept I did for a project that never > materialized. In order to access cgi variables, you can use the cgi > module or any other python module! Would this be useful to anyone? Every tool has a use! Offhand it occurs to me this might a simple, well organized structure for a cgi environment, though I wonder if the extra level of processing might make it a little slow. Ought to be other uses too... I _do_ think the tags and the title "PajamaScript" is brilliant marketing. Highest kudos! ["PajamaScript" beats "PyTxtParse2ModuleExecEnviron.py" !] Any functioning examples of its use? Eric Pederson ::: def eAddy(): domainNot="@something.com" domainIs=domainNot.replace("s","z") ePrefix="".join([chr(ord(x)+1) for x in "do"]) mailMeAt=ePrefix+domainIs return mailMeAt ::: -- http://mail.python.org/mailman/listinfo/python-list
Re: Python mascot proposal
> Since the word 'Python' would bring -some- sort of snake associations, > I > thought of combining snake and Monty Python symbolic, like making a > snake wind around a giant foot, or adding long mustache and an english > hat to a snake or something in that manner, or even put a snake into a > holy grail heh. > > But then again, I'm not sure if there'll be no copyright issues. But surely only you and I and the other Pythonistas will recognize a Norwegian Blue when we see one. Might be hard to get away from the snake, as was noted, its a level or two easier mental association than MP. Logo? Maybe a Norweigian Blue on is back, one fut in e air, wit a snake ead off to is ide, grinningly wit a char-grin? es not dead! Eric Pederson ::: domainNot="@something.com" domainIs=domainNot.replace("s","z") ePrefix="".join([chr(ord(x)+1) for x in "do"]) mailMeAt=ePrefix+domainIs ::: -- http://mail.python.org/mailman/listinfo/python-list
Re: NO REALLY
> "Jive" <[EMAIL PROTECTED]> taunted: > > > Subject: NO REALLY > > > > Isn't there a comp.lang.flame or something? > Oh, my, don't you have BIG CAPS! Someone should wash them, thoroughly! Why don't you come up to my room, big boy. -DIRK [is that flaming enough?] -- http://mail.python.org/mailman/listinfo/python-list
Re: PHP vs. Python
Paul Rubin did say: > For sites that get less traffic than that, they only reason they need > to scale if they're written in Python is that Python is too slow. Asked earnestly: is there a feel or quantification that Python is slower than PHP in network applications? If, so, I am wondering if it is because of the traction PHP has in the web community leading to possibly tighter integration with (e.g.) Apache. My beloved Python-oriented webhost doesn't currently support Mod-Python due to concerns about unknown security risks, and without that one carries the interpreter start-up burden for each invocation, as I understand it. Speed in a server-client environment does concern me a bit because 100+ hits per second would be the minimum realm of success for the web app I am building in Python (I do not foresee using PHP, so maybe I would convert everything to C++ if I had to, but I really would not want to have to...) In everything I have done so far, Python's speed has been quite satisfactory, and I always remember the loud complainings in the MySQL forum about SQL queries that take seconds, minutes, days... only to end up magnitudes faster when someone points out the folly of the code or table set-up. Not sure if the OP is considering Python v.s. PHP on the server or on the desktop (PHP isn't web only, except by common use); they are very different use cases. Eric Pederson http://www.songzilla.blogspot.com ::: domainNot="@something.com" domainIs=domainNot.replace("s","z") ePrefix="".join([chr(ord(x)+1) for x in "do"]) mailMeAt=ePrefix+domainIs ::: -- http://mail.python.org/mailman/listinfo/python-list
Re: OT: What encoding is this?
[EMAIL PROTECTED] wrote: >Way off-topic for Python, but can someone tell me what encoding was used in >this web page: > >http://www.loppen.dk/side.php?navn=getin > >I'm guessing ISO-8859-15, but the page doesn't indicate and it's none of the >ones available in Safari. > >Thanks, > >Skip > > ISO-8859-1 per Mozilla -- http://mail.python.org/mailman/listinfo/python-list
Re: merits of Lisp vs Python
> > "No programmer who learned Lisp ever gave up before he learned Lisp."That > > would be the obvious retort, but my observation was empirical, so I > am afraid you need numbers, not word games. > > You seem awfully hostile, by the way. Won't that make it harder to > conduct an intelligent exchange of value to lurkers? > > > I wonder, how many people gave up trying to learn Lisp because the > > language was too hard for them to read? Anyone like to bet that the number > > was more than zero?Sorry, no one ever discovered Lisp, decided it would be > > great for > programming, started learning it and then gave up because they could not > handle the syntax. Uh. Clearly no one would be dumb enough to admit it in front of the entire usenet world, right? - Mr. NoOne P.S. I am still going to get back to it when I get some time, really. LISP seems intriguing and superior, almost a magical Rubik's cube waiting for me. I just stumbled across Python in the meantime and code started flowing - I got distracted. I have CL (& Scheme) on all my machines awaiting my focus I'll join the flock any day now. :-) I've just been busy. There is a cost to learning and I've not had the spare change to date. But New Years resolutions need to be made: I could get up a couple hours early and spend some quality time with CL, do a daily hour jog, and eat a really heathly breakfast. Writing myself a note on this. P.P.S. Undoubtedly not learning a syntax either means not enough time was put in or the student lacked proper intelligence. This will always bias the significance of learning syntax as a factor in choice of language to be under reported. cheers -- http://mail.python.org/mailman/listinfo/python-list
Re: The Famous Error Message: "ImportError: No module named python_script"
rich murphy wrote: >So, I assumed "the current directory" is C:\Python25 which did not >work. Then I placed the fibo.py file in C: director. That did not work >either. What directory does it mean then? > OK, forgive me for using 2.4... Can you import "sys"? Assuming you've got python_script.py at path: "C:\\python_script.py" you might try this quick test: >>> import sys >>> sys.path ['C:\\Python24\\Lib\\idlelib', 'C:\\windows\\system32\\python24.zip', 'C:\\Python24', 'C:\\Python24\\DLLs', 'C:\\Python24\\lib', 'C:\\Python24\\lib\\plat-win', 'C:\\Python24\\lib\\lib-tk', 'C:\\Python24\\lib\\site-packages', 'C:\\Python24\\lib\\site-packages\\win32', 'C:\\Python24\\lib\\site-packages\\win32\\lib'] ## your ouput may be different >>> sys.path.append("C:\\") >>> sys.path ['C:\\Python24\\Lib\\idlelib', 'C:\\windows\\system32\\python24.zip', 'C:\\Python24', 'C:\\Python24\\DLLs', 'C:\\Python24\\lib', 'C:\\Python24\\lib\\plat-win', 'C:\\Python24\\lib\\lib-tk', 'C:\\Python24\\lib\\site-packages', 'C:\\Python24\\lib\\site-packages\\win32', 'C:\\Python24\\lib\\site-packages\\win32\\lib', 'C:\\'] >>> import python_script 6.1.1 The Module Search Path When a module named spam is imported, the interpreter searches for a file named spam.py in the current directory [...] Actually, modules are searched in the list of directories given by the variable |sys.path| which is initialized from the directory containing the input script (or the current directory), PYTHONPATH and the installation-dependent default. This allows Python programs that know what they're doing to modify or replace the module search path. Note that because the directory containing the script being run is on the search path, it is important that the script not have the same name as a standard module, or Python will attempt to load the script as a module when that module is imported. This will generally be an error. See section 6.2 <#standardModules>, ``Standard Modules,'' for more information. -- http://mail.python.org/mailman/listinfo/python-list
Re: Why does Python never add itself to the Windows path?
Ben Sizer wrote: >I've installed several different versions of Python across several >different versions of MS Windows, and not a single time was the Python >directory or the Scripts subdirectory added to the PATH environment >variable. Every time, I've had to go through and add this by hand, to >have something resembling a usable Python installation. No such >problems on Linux, whether it be Mandrake/Mandriva, Fedora Core, or >Kubuntu. So why is the Windows install half-crippled by default? I just >rediscovered this today when trying to run one of the Turbogears >scripts, but this has puzzled me for years now. > +1 It is a pain for me because it is something I need to remember to do maybe once a year or less. It seems best practice with Windows is to throw away the machine every 2 years - so much crap gets automatically installed in places and ways not solicited I'd think only cybermonks get away clean. That the Python install is a good citizen in this regard is noble, but does it really make a difference in regard to the overall Windows installation? And is that difference worth the recurring pain of not having Python on the path automatically? There must be hundreds of programs on the PATH of the machine I type on, its ugly. And lets not even talk about the Registry. Time to throw away the machine. That's what I get for being a cheap slut for any interesting program. Windows will never be UNIX, invest in penicillin. -- http://mail.python.org/mailman/listinfo/python-list
Re: Just remember that Python is sexy
> I often can't remember that to remove spaces from a string whether it's > strip() or trim(), and when finding patterns with the re library > whether it's find() or search() and when iterating over key, values of > a dictionary whether it's items() or entries(). > But then I remember that Python is "sexy". > It is sexier to strip() than to trim(). > You do a strip search() not a find() search. > And you remove items() of clothing and not entries() of clothing. Genius! I will never perplex myself with string_foo.trim() again. (I do forget) I recommend this be adopted as a naming standard for Python methods: "The method name should have a sexy connotation" Eric Pederson http://www.songzilla.blogspot.com ::: domainNot="@something.com" domainIs=domainNot.replace("s","z") ePrefix="".join([chr(ord(x)+1) for x in "do"]) mailMeAt=ePrefix+domainIs ::: -- http://mail.python.org/mailman/listinfo/python-list
Re: Convert to binary and convert back to strings
Harlin Seritt wrote: >Hi... > >I would like to take a string like 'supercalifragilisticexpialidocius' >and write it to a file in binary forms -- this way a user cannot read >the string in case they were try to open in something like ascii text >editor. I'd also like to be able to read the binary formed data back >into string format so that it shows the original value. Is there any >way to do this in Python? > >Thanks! > >Harlin > > > To my mind, the more sensible job you do at programming this the worse off you are, unless you use strong encryption. There are nearly infinite approaches, so the random approach you use will be part of the "security" of the obfuscation. OK, I am not really taking this so seriously, but it is a fun question (Python makes these minor things fun). Is there anyway to do this in Python? You bet, so many ways... here's another: s="""I would like to take a string like 'supercalifragilisticexpialidocius' and write it to a file in binary forms -- this way a user cannot read the string in case they were try to open in something like ascii text editor. I'd also like to be able to read the binary formed data back into string format so that it shows the original value. Is there any way to do this in Python?""" s0=s+"$" s2="0 ".join([str(ord(c)) for c in s]) s1="".join([chr(int(i[:-1])) for i in s2.split(" ")[:-1]])+chr(int(s2[-1]))[:-1] def codeMe(s): s0=s+"$" return "0 ".join([str(ord(c)) for c in s0]) def uncodeMe(s): return "".join([chr(int(i[:-1])) for i in s.split(" ")[:-1]])+chr(int(s[-1]))[:-1] def testit(s): s2=codeMe(s) s1=uncodeMe(s2) strings={"original":s, "obfuscated":s2, "decoded":s1} for k in strings.keys(): print k,": ","\n",strings[k], "\n\n" testit(s) - the obfuscated looks like this: 730 320 1190 1110 1170 1080 1000 320 1080 1050 1070 1010 320 1160 1110 320 1160 970 1070 1010 320 970 320 1150 1160 1140 1050 1100 1030 320 1080 1050 1070 1010 320 390 1150 1170 1120 1010 1140 990 970 1080 1050 1020 1140 970 1030 1050 1080 1050 1150 1160 1050 990 1010 1200 1120 1050 970 1080 1050 1000 1110 990 1050 1170 1150 390 100 970 1100 1000 320 1190 1140 1050 1160 1010 320 1050 1160 320 1160 1110 320 970 320 1020 1050 1080 1010 320 1050 1100 320 980 1050 1100 970 1140 1210 320 1020 1110 1140 1090 1150 320 450 450 320 1160 1040 1050 1150 320 1190 970 1210 320 970 320 1170 1150 1010 1140 320 990 970 1100 1100 1110 1160 320 1140 1010 970 1000 100 1160 1040 1010 320 1150 1160 1140 1050 1100 1030 320 1050 1100 320 990 970 1150 1010 320 1160 1040 1010 1210 320 1190 1010 1140 1010 320 1160 1140 1210 320 1160 1110 320 1110 1120 1010 1100 320 1050 1100 320 1150 1110 1090 1010 1160 1040 1050 1100 1030 320 1080 1050 1070 1010 320 970 1150 990 1050 1050 320 1160 1010 1200 1160 100 1010 1000 1050 1160 1110 1140 460 320 730 390 1000 320 970 1080 1150 1110 320 1080 1050 1070 1010 320 1160 1110 320 980 1010 320 970 980 1080 1010 320 1160 1110 320 1140 1010 970 1000 320 1160 1040 1010 320 980 1050 1100 970 1140 1210 320 1020 1110 1140 1090 1010 1000 320 1000 970 1160 970 320 980 970 990 1070 100 1050 1100 1160 1110 320 1150 1160 1140 1050 1100 1030 320 1020 1110 1140 1090 970 1160 320 1150 1110 320 1160 1040 970 1160 320 1050 1160 320 1150 1040 1110 1190 1150 320 1160 1040 1010 320 1110 1140 1050 1030 1050 1100 970 1080 320 1180 970 1080 1170 1010 460 320 730 1150 320 1160 1040 1010 1140 1010 320 970 1100 1210 100 1190 970 1210 320 1160 1110 320 1000 1110 320 1160 1040 1050 1150 320 1050 1100 320 800 1210 1160 1040 1110 1100 630 36 Of course some overly curious application user may note the pattern of "0" endings, strip those off, concatenate the numbers, and try several conversions on them, at which point they may figure this out- and contact you to gloat that they have hacked the file. That's when you recruit them onto your development team and give them some real work. :-) Have fun EP -- http://mail.python.org/mailman/listinfo/python-list