User Tools

Site Tools


other:python:misc_by_jyp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
other:python:misc_by_jyp [2021/08/25 12:40]
jypeter [Working with paths and filenames] Improved example
other:python:misc_by_jyp [2021/09/17 14:05] (current)
jypeter [Printing a readable version of long lists or dictionaries] Added long list example
Line 102: Line 102:
 >>>​ sum(files_sizes) >>>​ sum(files_sizes)
 64792</​code>​ 64792</​code>​
 +
 +==== Generating file names ====
 +
 +=== Name depending on the current date/time ===
 +
 +<​code>>>>​ import time
 +>>>​ plot_version = time.strftime('​%Y%m%d_%H%M'​)
 +>>>​ f_name = '​test_%s.nc'​ % (plot_version,​)
 +>>>​ f_name
 +'​test_20210827_1334.nc'​
 +</​code>​
 +
 +=== Temporary file ===
 +
 +<​code>>>>​ import tempfile, os
 +>>>​ f_tmp = tempfile.NamedTemporaryFile(mode='​w',​ suffix='​.nc',​ delete=False)
 +>>>​ f_tmp
 +<​tempfile._TemporaryFileWrapper object at 0x2b5614743820>​
 +>>>​ f_tmp.name
 +'/​tmp/​tmpi6uk9hre.nc'​
 +>>>​ f_tmp.close()
 +>>>​ os.remove(f_tmp.name)</​code>​
 ==== Using command-line arguments ==== ==== Using command-line arguments ====
  
Line 148: Line 170:
 The [[https://​docs.python.org/​3/​library/​pprint.html|pprint]] module can be used for //pretty printing// objects (lists, dictionaries,​ ...). It will wrap long lines in a meaningful way The [[https://​docs.python.org/​3/​library/​pprint.html|pprint]] module can be used for //pretty printing// objects (lists, dictionaries,​ ...). It will wrap long lines in a meaningful way
  
-<​code>>>> ​from collections ​import ​OrderedDict+<​code>>>>​ import ​pprint
  
->>>​ test_dic = OrderedDict([('​AWI-ESM-1-1-LR_AWI'​{'​r1i1p1f1':​ {'​grid':​ '​gn'​}})('​CESM2_NCAR'​{'​r1i1p1f1':​ {'​grid':​ '​gn'​}})('​IPSL-CM6A-LR_IPSL'​{'​r1i1p1f1':​ {'​grid':​ '​gr'​},​ '​r1i1p1f2':​ {'​grid':​ '​gr'​},​ '​r1i1p1f3':​ {'​grid':​ '​gr'​},​ '​r1i1p1f4':​ {'​grid':​ '​gr'​}})])+>>>​ test_dic = {'​AWI-ESM-1-1-LR_AWI'​:{'​r1i1p1f1':​ {'​grid':​ '​gn'​}},​ '​CESM2_NCAR'​:{'​r1i1p1f1':​ {'​grid':​ '​gn'​}},​ '​IPSL-CM6A-LR_IPSL'​:{'​r1i1p1f1':​ {'​grid':​ '​gr'​},​ '​r1i1p1f2':​ {'​grid':​ '​gr'​},​ '​r1i1p1f3':​ {'​grid':​ '​gr'​},​ '​r1i1p1f4':​ {'​grid':​ '​gr'​}}}
  
 >>>​ print(test_dic) >>>​ print(test_dic)
-OrderedDict([('​AWI-ESM-1-1-LR_AWI'​{'​r1i1p1f1':​ {'​grid':​ '​gn'​}})('​CESM2_NCAR'​{'​r1i1p1f1':​ {'​grid':​ '​gn'​}})('​IPSL-CM6A-LR_IPSL'​{'​r1i1p1f1':​ {'​grid':​ '​gr'​},​ '​r1i1p1f2':​ {'​grid':​ '​gr'​},​ '​r1i1p1f3':​ {'​grid':​ '​gr'​},​ '​r1i1p1f4':​ {'​grid':​ '​gr'​}})])+{'​AWI-ESM-1-1-LR_AWI'​{'​r1i1p1f1':​ {'​grid':​ '​gn'​}},​ '​CESM2_NCAR'​{'​r1i1p1f1':​ {'​grid':​ '​gn'​}},​ '​IPSL-CM6A-LR_IPSL'​{'​r1i1p1f1':​ {'​grid':​ '​gr'​},​ '​r1i1p1f2':​ {'​grid':​ '​gr'​},​ '​r1i1p1f3':​ {'​grid':​ '​gr'​},​ '​r1i1p1f4':​ {'​grid':​ '​gr'​}}}
  
 >>>​ pprint.pprint(test_dic) >>>​ pprint.pprint(test_dic)
-OrderedDict([('​AWI-ESM-1-1-LR_AWI'​{'​r1i1p1f1':​ {'​grid':​ '​gn'​}})+{'​AWI-ESM-1-1-LR_AWI'​{'​r1i1p1f1':​ {'​grid':​ '​gn'​}},​ 
-             ('​CESM2_NCAR'​{'​r1i1p1f1':​ {'​grid':​ '​gn'​}})+ '​CESM2_NCAR'​{'​r1i1p1f1':​ {'​grid':​ '​gn'​}},​ 
-             ('​IPSL-CM6A-LR_IPSL'​+ '​IPSL-CM6A-LR_IPSL'​{'​r1i1p1f1':​ {'​grid':​ '​gr'​},​ 
-              ​{'​r1i1p1f1':​ {'​grid':​ '​gr'​},​ +                       ​'​r1i1p1f2':​ {'​grid':​ '​gr'​},​ 
-               ​'​r1i1p1f2':​ {'​grid':​ '​gr'​},​ +                       ​'​r1i1p1f3':​ {'​grid':​ '​gr'​},​ 
-               ​'​r1i1p1f3':​ {'​grid':​ '​gr'​},​ +                       ​'​r1i1p1f4':​ {'​grid':​ '​gr'​}}
-               ​'​r1i1p1f4':​ {'​grid':​ '​gr'​}})])+                        
 +>>>​ dir(test_dic) 
 +['​__class__',​ '​__contains__',​ '​__delattr__',​ [... lots of unreadable stuff removed...'​setdefault',​ '​update',​ '​values'​] 
 + 
 +>>>​ pprint.pprint(dir(test_dic)
 +['​__class__',​ 
 + '​__contains__',​ 
 + 
 +[... lots of lines removed in this example ] 
 + 
 + '​setdefault',​ 
 + '​update',​ 
 + '​values'​] 
 </​code>​ </​code>​
  
other/python/misc_by_jyp.1629895233.txt.gz · Last modified: 2021/08/25 12:40 by jypeter