My apologies for the crappy headline. If I were able to frame my problem properly I would have used google ;)  I found an piece of python code able to parse ini files into a python dict called "store":   #!/usr/bin/env python  from ConfigParser import SafeConfigParser  def read(file, store):      def parse_maybe(section):         if not confp.has_section(section):             return False          if (section == "Main"):             for left, right in confp.items(section):                 store[left] = right.format(**store)         return True      confp = SafeConfigParser()     confp.read(file)     parse_maybe("Main")  store = {} store["basedir"] = "/path/to/somewhere" read("foo.ini", store)   The ini files may include declarations with placeholders, for instance:  [Main] output = {basedir}/somename.txt   When running the code, {basedir} gets replaced by "/path/to/somewhere" already defined in store. I guess this magic comes from this line of code:  store[left] = right.format(**store)   I understand what the code does. But I do not understand how this works. What is this ** operator doing with the dictionary? A pointer to a tutorial, etc. would be highly appreciated.
866
In the following method definitions, what does the * and ** do for param2?  def foo(param1, *param2): def bar(param1, **param2):
86547
On my system (Windows Vista Home Premium 64bit) Python files are associated with Python interpreter:  C:\Users\Piotr&gt;assoc .py .py=Python.File C:\Users\Piotr&gt;ftype Python.File Python.File=c:\python\2.7\python.exe "%1" %*   Nevertheless when I run any Python script from command line a window titled Open With pops up asking me to Choose the program you want to use to open this file.
115925
Is there any difference between:  if foo is None: pass   and  if foo == None: pass   The convention that I've seen in most Python code (and the code I myself write) is the former, but I recently came across code which uses the latter.  None is an instance (and the only instance, IIRC) of NoneType, so it shouldn't matter, right?  Are there any circumstances in which it might?
78277
For example, files, in Python, are iterable - they iterate over the lines in the file. I want to count the number of lines.   One quick way is to do this:  lines = len(list(open(fname)))   However, this loads the whole file into memory (at once). This rather defeats the purpose of an iterator (which only needs to keep the current line in memory).  This doesn't work:  lines = len(line for line in open(fname))   as generators don't have a length.  Is there any way to do this short of defining a count function?  def count(i):     c = 0     for el in i: c += 1     return c   To clarify, I understand that the whole file will have to be read! I just don't want it in memory all at once
23941
I have been using Python more and more, and I keep seeing the variable __all__ set in different __init__.py files.  Can someone explain what this does?
89893
The __debug__ variable is handy in part because it affects every module. If I want to create another variable that works the same way, how would I do it?  The variable (let's be original and call it 'foo') doesn't have to be truly global, in the sense that if I change foo in one module, it is updated in others. I'd be fine if I could set foo before importing other modules and then they would see the same value for it.
60856
I have a string that looks like this:  "Name1=Value1;Name2=Value2;Name3=Value3"   Is there a built-in class/function in Python that will take that string and construct a dictionary, as though I had done this:  dict = {     "Name1": "Value1",     "Name2": "Value2",     "Name3": "Value3" }   I have looked through the modules available but can't seem to find anything that matches.    Thanks, I do know how to make the relevant code myself, but since such smallish solutions are usually mine-fields waiting to happen (ie. someone writes: Name1='Value1=2';) etc. then I usually prefer some pre-tested function.  I'll do it myself then.
6086
Putting aside whether the use of , I have run into the following conundrum when trying to evaluate isinstance after serializing/deserializing an object via Pickle:  from __future__ import with_statement import pickle  # Simple class definition class myclass(object):     def __init__(self, data):         self.data = data  # Create an instance of the class x = myclass(100)  # Pickle the instance to a file with open("c:\\pickletest.dat", "wb") as f:     pickle.dump(x, f)  # Replace class with exact same definition class myclass(object):     def __init__(self, data):         self.data = data  # Read an object from the pickled file with open("c:\\pickletest.dat", "rb") as f:     x2 = pickle.load(f)  # The class names appear to match print x.__class__ print x2.__class__  # Uh oh, this fails...(why?) assert isinstance(x2, x.__class__)   Can anyone shed some light on why isinstance would fail in this situation? In other words, why does Python think these objects are of two different classes? When I remove the second class definition, isinstance works fine.
13057
I have this directory /foo/bar/. Inside, I have a python file named myfile.py. I made it executable by adding (at the top):  #!/usr/bin/env python   Then, I made it executable by issuing   chmod +x myfile.py   I edited my path by issuing  sudo nano /etc/paths   I added /foo/bar/ to it.  The problem is that although I can run myfile.py by typing ./myfile.py while I am inside /foo/bar/, it doesn't work from any other location. What am I doing wrong?  Thank you.
91508
I am completely new to Linux and Ubuntu.   I have written python code in Windows and want to run it in Ubuntu. It uses a text file for input. The 'path-to-file' in windows looks as follows   c:user\documents\python\file.txt   How is the location written for Ubuntu?
90369
Here is the code:  import bpy import csv import sys csv_path = sys.argv[1]  file = open(csv_path) reader = csv.reader(file)  header = next(reader) # 1st line is header  data = [ ] for row in reader:     name0 = row[0]     name1 = row[0]     pathout = 'test-videos/' + row[5] + '.m4v'     s = bpy.context.scene     f = s.objects['FirstName']     f.data.body = name0     f1 = s.objects['FirstName01']     f1.data.body = name1+'?'     bpy.context.scene.render.filepath = pathout     bpy.ops.render.render(animation=True)  bpy.ops.wm.quit_blender()   And here is the error message:  Read blend: /PI-SAT/proj001/proj001-master.blend Traceback (most recent call last): File "/PI-SAT/proj001/proj001master.py", line 9, in &lt;module&gt; header = next(reader) # 1st line is header File"/Applications/Blender/blender.app/Contents/Resources/2.79/python/ lib/python3.5/codecs.py", line 321, in decode (result, consumed) = self._buffer_decode(data, self.errors, final) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xef in position 23: invalid continuation byte Error: File format is not supported in file '/PI-SAT/proj001/test.csv' ... opened default scene instead; saving will write to /PISAT/proj001/test.csv   I have read the file with a different script using the exact same code as in lines 2 - 15 and then printing the names and pathout. Running the script from the command line, not from within Blender, it works perfectly.  I have also run the part of the script within the for loop outside of the loop as a script from the command line and it works perfectly.  What am I missing about the CSV file? I created it in Excel on my Mac; is that a problem?
15968
A real example is: I have a Python file util.py, and I changed one of the function name from foo to bar. There might be other files using foo as function name and they are irrelevant.  I want to update all the Python files in the project from foo to bar. So I would like to do a search on files for imports such as:  import project.path.util   or   from project.path.util import foo   and any calls to foo such as one starting with:  foo(   The solution has to be whitespace tolerant. I can search each of them using grep but I am uncertain about the combined search. Any suggestions will be appreciated.
57381
I'm having some brain failure in understanding reading and writing text to a file (Python 2.4).  # The string, which has an a-acute in it. ss = u'Capit\xe1n' ss8 = ss.encode('utf8') repr(ss), repr(ss8)      ("u'Capit\xe1n'", "'Capit\xc3\xa1n'")   print ss, ss8 print &gt;&gt; open('f1','w'), ss8  &gt;&gt;&gt; file('f1').read() 'Capit\xc3\xa1n\n'   So I type in Capit\xc3\xa1n into my favorite editor, in file f2.  Then:  &gt;&gt;&gt; open('f1').read() 'Capit\xc3\xa1n\n' &gt;&gt;&gt; open('f2').read() 'Capit\\xc3\\xa1n\n' &gt;&gt;&gt; open('f1').read().decode('utf8') u'Capit\xe1n\n' &gt;&gt;&gt; open('f2').read().decode('utf8') u'Capit\\xc3\\xa1n\n'   What am I not understanding here? Clearly there is some vital bit of magic (or good sense) that I'm missing. What does one type into text files to get proper conversions?  What I'm truly failing to grok here, is what the point of the UTF-8 representation is, if you can't actually get Python to recognize it, when it comes from outside. Maybe I should just JSON dump the string, and use that instead, since that has an asciiable representation! More to the point, is there an ASCII representation of this Unicode object that Python will recognize and decode, when coming in from a file?  If so, how do I get it?  &gt;&gt;&gt; print simplejson.dumps(ss) '"Capit\u00e1n"' &gt;&gt;&gt; print &gt;&gt; file('f3','w'), simplejson.dumps(ss) &gt;&gt;&gt; simplejson.load(open('f3')) u'Capit\xe1n'
11099
I have the following file:  abcde kwakwa &lt;0x1A&gt; line3 linllll   Where &lt;0x1A&gt; represents a byte with the hex value of 0x1A. When attempting to read this file in Python as:  for line in open('t.txt'):     print line,   It only reads the first two lines, and exits the loop.  The solution seems to be to open the file in binary (or universal newline mode) - 'rb' or 'rU'. Can you explain this behavior ?
36880
Oftentimes, I want to include code samples in a list, for example:   Item One Item Two, for example: private bool ItemTwo() {     return this.IFeelLucky; } Item Three   The problem is that there isn't a good and intuitive way to do this using . It's doable, but you have to do some formatting black-magic to get it that way, which is just not "nice" to deal with.  Source that produces this:  1. Item One 2. Item Two, for example: &lt;br/>&lt;br/>&lt;pre>&lt;code>private bool ItemTwo()     {         return this.IFeelLucky;     }&lt;/code>&lt;/pre> 3. Item Three    I would love to just be able to do it this way:  1. Item One 2. Item Two, for example:      private bool Test()     {         return this.IFeelLucky;     }  3. Item Three  Which results in, well, this:   Item One Item Two, for example:  private bool Test() {     return this.IFeelLucky; } Item Three
110447
In Python you can use  for a file-like buffer for character data.  basically does similar thing for binary data, but it requires a file that is used as the basis. Does Python have a file object that is intended for binary data and is memory only, equivalent to Java's ?  The use-case I have is I want to create a ZIP file in memory, and  requires a file-like object.
10721
Environments are allowed to have arguments, but reference to those arguments can only appear in the opening code of the environment, and not the closing code.  What is the reason for this, and are there preferred ways around it?  e.g.  \newenvironment{foo}[1]% {some code #1} % allowed {some code #1} % not allowed