Why does comparing strings using either ‘==’ or ‘is’ sometimes produce a different result?

is is identity testing, == is equality testing. what happens in your code would be emulated in the interpreter like this: >>> a=”pub” >>> b = ”.join([‘p’, ‘u’, ‘b’]) >>> a == b True >>> a is b False so, no wonder they’re not the same, right? In other words: a is b is the … Read more

Correct way to write line to file?

This should be as simple as: with open(‘somefile.txt’, ‘a’) as the_file: the_file.write(‘Hello\n’) From The Documentation: Do not use os.linesep as a line terminator when writing files opened in text mode (the default); use a single ‘\n’ instead, on all platforms. Some useful reading: The with statement open() ‘a’ is for append, or use ‘w’ to … Read more

How do I create a constant in Python?

You cannot declare a variable or value as constant in Python. To indicate to programmers that a variable is a constant, one usually writes it in upper case: CONST_NAME = “Name” To raise exceptions when constants are changed, see Constants in Python by Alex Martelli. Note that this is not commonly used in practice. As … Read more

How do I get the full path of the current file’s directory?

The special variable __file__ contains the path to the current file. From that we can get the directory using either pathlib or the os.path module. Python 3 For the directory of the script being run: import pathlib pathlib.Path(__file__).parent.resolve() For the current working directory: import pathlib pathlib.Path().resolve() Python 2 and 3 For the directory of the … Read more

How to move a file in Python?

os.rename(), os.replace(), or shutil.move() All employ the same syntax: import os import shutil os.rename(“path/to/current/file.foo”, “path/to/new/destination/for/file.foo”) os.replace(“path/to/current/file.foo”, “path/to/new/destination/for/file.foo”) shutil.move(“path/to/current/file.foo”, “path/to/new/destination/for/file.foo”) Note that you must include the file name (file.foo) in both the source and destination arguments. If it is changed, the file will be renamed as well as moved. Note also that in the first two … Read more

How do I terminate a script?

import sys sys.exit() details from the sys module documentation: sys.exit([arg]) Exit from Python. This is implemented by raising the SystemExit exception, so cleanup actions specified by finally clauses of try statements are honored, and it is possible to intercept the exit attempt at an outer level. The optional argument arg can be an integer giving … Read more

In Python, how do I determine if an object is iterable?

Checking for __iter__ works on sequence types, but it would fail on e.g. strings in Python 2. I would like to know the right answer too, until then, here is one possibility (which would work on strings, too): try: some_object_iterator = iter(some_object) except TypeError as te: print(some_object, ‘is not iterable’) The iter built-in checks for … Read more