PythonExtensionsCollection 0.2.0__py3-none-any.whl → 0.13.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. PythonExtensionsCollection/Comparison/CComparison.py +341 -0
  2. PythonExtensionsCollection/Comparison/__init__.py +13 -0
  3. PythonExtensionsCollection/File/CFile.py +326 -106
  4. PythonExtensionsCollection/File/__init__.py +1 -1
  5. PythonExtensionsCollection/Folder/CFolder.py +460 -0
  6. PythonExtensionsCollection/Folder/__init__.py +13 -0
  7. PythonExtensionsCollection/PythonExtensionsCollection.pdf +0 -0
  8. PythonExtensionsCollection/String/CString.py +128 -344
  9. PythonExtensionsCollection/String/__init__.py +1 -1
  10. PythonExtensionsCollection/Utils/CUtils.py +77 -74
  11. PythonExtensionsCollection/Utils/__init__.py +1 -1
  12. PythonExtensionsCollection/__init__.py +1 -1
  13. PythonExtensionsCollection/version.py +23 -0
  14. {PythonExtensionsCollection-0.2.0.dist-info → PythonExtensionsCollection-0.13.0.dist-info}/METADATA +57 -44
  15. PythonExtensionsCollection-0.13.0.dist-info/RECORD +18 -0
  16. {PythonExtensionsCollection-0.2.0.dist-info → PythonExtensionsCollection-0.13.0.dist-info}/WHEEL +1 -1
  17. PythonExtensionsCollection/doc/.buildinfo +0 -4
  18. PythonExtensionsCollection/doc/File.html +0 -315
  19. PythonExtensionsCollection/doc/String.html +0 -590
  20. PythonExtensionsCollection/doc/Utils.html +0 -209
  21. PythonExtensionsCollection/doc/_modules/PythonExtensionsCollection/File/CFile.html +0 -960
  22. PythonExtensionsCollection/doc/_modules/PythonExtensionsCollection/String/CString.html +0 -1221
  23. PythonExtensionsCollection/doc/_modules/PythonExtensionsCollection/Utils/CUtils.html +0 -431
  24. PythonExtensionsCollection/doc/_modules/index.html +0 -106
  25. PythonExtensionsCollection/doc/_sources/File.rst.txt +0 -28
  26. PythonExtensionsCollection/doc/_sources/String.rst.txt +0 -28
  27. PythonExtensionsCollection/doc/_sources/Utils.rst.txt +0 -28
  28. PythonExtensionsCollection/doc/_sources/additional_doc/Introduction.rst.txt +0 -365
  29. PythonExtensionsCollection/doc/_sources/index.rst.txt +0 -27
  30. PythonExtensionsCollection/doc/_static/_sphinx_javascript_frameworks_compat.js +0 -134
  31. PythonExtensionsCollection/doc/_static/alabaster.css +0 -701
  32. PythonExtensionsCollection/doc/_static/basic.css +0 -930
  33. PythonExtensionsCollection/doc/_static/custom.css +0 -1
  34. PythonExtensionsCollection/doc/_static/doctools.js +0 -264
  35. PythonExtensionsCollection/doc/_static/documentation_options.js +0 -14
  36. PythonExtensionsCollection/doc/_static/file.png +0 -0
  37. PythonExtensionsCollection/doc/_static/jquery-3.6.0.js +0 -10881
  38. PythonExtensionsCollection/doc/_static/jquery.js +0 -2
  39. PythonExtensionsCollection/doc/_static/language_data.js +0 -199
  40. PythonExtensionsCollection/doc/_static/minus.png +0 -0
  41. PythonExtensionsCollection/doc/_static/plus.png +0 -0
  42. PythonExtensionsCollection/doc/_static/pygments.css +0 -82
  43. PythonExtensionsCollection/doc/_static/searchtools.js +0 -531
  44. PythonExtensionsCollection/doc/_static/underscore-1.13.1.js +0 -2042
  45. PythonExtensionsCollection/doc/_static/underscore.js +0 -6
  46. PythonExtensionsCollection/doc/additional_doc/Introduction.html +0 -365
  47. PythonExtensionsCollection/doc/genindex.html +0 -292
  48. PythonExtensionsCollection/doc/index.html +0 -123
  49. PythonExtensionsCollection/doc/objects.inv +0 -0
  50. PythonExtensionsCollection/doc/py-modindex.html +0 -138
  51. PythonExtensionsCollection/doc/search.html +0 -127
  52. PythonExtensionsCollection/doc/searchindex.js +0 -1
  53. PythonExtensionsCollection-0.2.0.dist-info/RECORD +0 -48
  54. {PythonExtensionsCollection-0.2.0.dist-info → PythonExtensionsCollection-0.13.0.dist-info}/LICENSE +0 -0
  55. {PythonExtensionsCollection-0.2.0.dist-info → PythonExtensionsCollection-0.13.0.dist-info}/top_level.txt +0 -0
@@ -1,960 +0,0 @@
1
-
2
- <!DOCTYPE html>
3
-
4
- <html lang="en">
5
- <head>
6
- <meta charset="utf-8" />
7
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
- <title>PythonExtensionsCollection.File.CFile &#8212; Python Extensions Collection documentation</title>
9
- <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css" />
10
- <link rel="stylesheet" type="text/css" href="../../../_static/alabaster.css" />
11
- <script data-url_root="../../../" id="documentation_options" src="../../../_static/documentation_options.js"></script>
12
- <script src="../../../_static/jquery.js"></script>
13
- <script src="../../../_static/underscore.js"></script>
14
- <script src="../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
15
- <script src="../../../_static/doctools.js"></script>
16
- <link rel="index" title="Index" href="../../../genindex.html" />
17
- <link rel="search" title="Search" href="../../../search.html" />
18
-
19
- <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
20
-
21
-
22
- <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
23
-
24
- </head><body>
25
-
26
-
27
- <div class="document">
28
- <div class="documentwrapper">
29
- <div class="bodywrapper">
30
-
31
-
32
- <div class="body" role="main">
33
-
34
- <h1>Source code for PythonExtensionsCollection.File.CFile</h1><div class="highlight"><pre>
35
- <span></span><span class="c1"># **************************************************************************************************************</span>
36
- <span class="c1">#</span>
37
- <span class="c1"># Copyright 2020-2022 Robert Bosch GmbH</span>
38
- <span class="c1">#</span>
39
- <span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span>
40
- <span class="c1"># you may not use this file except in compliance with the License.</span>
41
- <span class="c1"># You may obtain a copy of the License at</span>
42
- <span class="c1">#</span>
43
- <span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
44
- <span class="c1">#</span>
45
- <span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
46
- <span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span>
47
- <span class="c1"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
48
- <span class="c1"># See the License for the specific language governing permissions and</span>
49
- <span class="c1"># limitations under the License.</span>
50
- <span class="c1">#</span>
51
- <span class="c1"># **************************************************************************************************************</span>
52
- <span class="c1">#</span>
53
- <span class="c1"># CFile.py</span>
54
- <span class="c1">#</span>
55
- <span class="c1"># XC-CT/ECA3-Queckenstedt</span>
56
- <span class="c1">#</span>
57
- <span class="c1"># 26.01.2022</span>
58
- <span class="c1">#</span>
59
- <span class="c1"># **************************************************************************************************************</span>
60
-
61
- <span class="c1"># -- import standard Python modules</span>
62
- <span class="kn">import</span> <span class="nn">os</span><span class="o">,</span> <span class="nn">shutil</span><span class="o">,</span> <span class="nn">platform</span>
63
-
64
- <span class="c1"># -- import Bosch Python modules</span>
65
- <span class="kn">from</span> <span class="nn">PythonExtensionsCollection.String.CString</span> <span class="kn">import</span> <span class="n">CString</span>
66
-
67
- <span class="c1"># **************************************************************************************************************</span>
68
-
69
- <div class="viewcode-block" id="enFileStatiType"><a class="viewcode-back" href="../../../File.html#PythonExtensionsCollection.File.CFile.enFileStatiType">[docs]</a><span class="k">class</span> <span class="nc">enFileStatiType</span><span class="p">:</span>
70
- <span class="n">closed</span> <span class="o">=</span> <span class="s2">&quot;closed&quot;</span>
71
- <span class="n">openedforwriting</span> <span class="o">=</span> <span class="s2">&quot;openedforwriting&quot;</span>
72
- <span class="n">openedforappending</span> <span class="o">=</span> <span class="s2">&quot;openedforappending&quot;</span>
73
- <span class="n">openedforreading</span> <span class="o">=</span> <span class="s2">&quot;openedforreading&quot;</span></div>
74
-
75
- <span class="c1"># --------------------------------------------------------------------------------------------------------------</span>
76
-
77
- <div class="viewcode-block" id="CFile"><a class="viewcode-back" href="../../../File.html#PythonExtensionsCollection.File.CFile.CFile">[docs]</a><span class="k">class</span> <span class="nc">CFile</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
78
- <span class="sd">&quot;&quot;&quot;</span>
79
- <span class="sd">|</span>
80
-
81
- <span class="sd">The class ``CFile`` provides a small set of file functions with extended parametrization (like switches</span>
82
- <span class="sd">defining if a file is allowed to be overwritten or not).</span>
83
-
84
- <span class="sd">Most of the functions at least returns ``bSuccess`` and ``sResult``.</span>
85
-
86
- <span class="sd">* ``bSuccess`` is ``True`` in case of no error occurred.</span>
87
- <span class="sd">* ``bSuccess`` is ``False`` in case of an error occurred.</span>
88
- <span class="sd">* ``bSuccess`` is ``None`` in case of a very fatal error occurred (exceptions).</span>
89
-
90
- <span class="sd">* ``sResult`` contains details about what happens during computation.</span>
91
-
92
- <span class="sd">Every instance of CFile handles one single file only and forces exclusive access to this file.</span>
93
-
94
- <span class="sd">It is not possible to create an instance of this class with a file that is already in use by another instance.</span>
95
-
96
- <span class="sd">It is also not possible to use ``CopyTo`` or ``MoveTo`` to overwrite files that are already in use by another instance.</span>
97
- <span class="sd">This makes the file handling more save against access violations.</span>
98
-
99
- <span class="sd">|</span>
100
- <span class="sd"> &quot;&quot;&quot;</span>
101
- <span class="c1"># --------------------------------------------------------------------------------------------------------------</span>
102
- <span class="c1"># TM***</span>
103
-
104
- <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sFile</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
105
- <span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">NormalizePath</span><span class="p">(</span><span class="n">sFile</span><span class="p">)</span>
106
- <span class="bp">self</span><span class="o">.</span><span class="n">__oFileHandle</span> <span class="o">=</span> <span class="kc">None</span>
107
- <span class="bp">self</span><span class="o">.</span><span class="n">__oFileStatus</span> <span class="o">=</span> <span class="n">enFileStatiType</span><span class="o">.</span><span class="n">closed</span>
108
- <span class="bp">self</span><span class="o">.</span><span class="n">__sLastDestination</span> <span class="o">=</span> <span class="kc">None</span>
109
-
110
- <span class="k">try</span><span class="p">:</span>
111
- <span class="n">CFile</span><span class="o">.</span><span class="n">__listFilesInUse</span>
112
- <span class="k">except</span><span class="p">:</span>
113
- <span class="n">CFile</span><span class="o">.</span><span class="n">__listFilesInUse</span> <span class="o">=</span> <span class="p">[]</span>
114
-
115
- <span class="c1"># exclusive access is required (checked by self.__bIsFreeToUse; relevant for destination in CopyTo and MoveTo)</span>
116
- <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span> <span class="ow">in</span> <span class="n">CFile</span><span class="o">.</span><span class="n">__listFilesInUse</span><span class="p">:</span>
117
- <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;The file &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; is already in use by another CFile instance.&quot;</span><span class="p">)</span>
118
- <span class="k">else</span><span class="p">:</span>
119
- <span class="n">CFile</span><span class="o">.</span><span class="n">__listFilesInUse</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="p">)</span>
120
-
121
- <span class="c1"># eof def __init__(self, sFile=None):</span>
122
-
123
- <span class="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
124
- <span class="bp">self</span><span class="o">.</span><span class="n">Close</span><span class="p">()</span>
125
- <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span> <span class="ow">in</span> <span class="n">CFile</span><span class="o">.</span><span class="n">__listFilesInUse</span><span class="p">:</span>
126
- <span class="n">CFile</span><span class="o">.</span><span class="n">__listFilesInUse</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="p">)</span>
127
-
128
- <span class="c1"># eof def __del__(self):</span>
129
-
130
- <span class="c1"># --------------------------------------------------------------------------------------------------------------</span>
131
- <span class="c1"># TM***</span>
132
-
133
- <span class="k">def</span> <span class="nf">__bIsFreeToUse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sFile</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
134
-
135
- <span class="n">bIsFreeToUse</span> <span class="o">=</span> <span class="kc">False</span> <span class="c1"># init</span>
136
- <span class="k">if</span> <span class="n">sFile</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
137
- <span class="n">bIsFreeToUse</span> <span class="o">=</span> <span class="kc">False</span> <span class="c1"># error handling</span>
138
- <span class="k">else</span><span class="p">:</span>
139
- <span class="k">if</span> <span class="n">sFile</span> <span class="ow">in</span> <span class="n">CFile</span><span class="o">.</span><span class="n">__listFilesInUse</span><span class="p">:</span>
140
- <span class="n">bIsFreeToUse</span> <span class="o">=</span> <span class="kc">False</span>
141
- <span class="k">else</span><span class="p">:</span>
142
- <span class="n">bIsFreeToUse</span> <span class="o">=</span> <span class="kc">True</span>
143
- <span class="k">return</span> <span class="n">bIsFreeToUse</span>
144
-
145
- <span class="c1"># eof def __bIsFreeToUse(self, sFile=None):</span>
146
-
147
- <span class="c1"># --------------------------------------------------------------------------------------------------------------</span>
148
- <span class="c1"># TM***</span>
149
-
150
- <span class="k">def</span> <span class="nf">__OpenForWriting</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
151
- <span class="sd">&quot;&quot;&quot;</span>
152
- <span class="sd">|</span>
153
-
154
- <span class="sd">Opens a text file for writing.</span>
155
-
156
- <span class="sd">Returns ``bSuccess`` and ``sResult`` (feedback).</span>
157
-
158
- <span class="sd">|</span>
159
- <span class="sd"> &quot;&quot;&quot;</span>
160
-
161
- <span class="n">sMethod</span> <span class="o">=</span> <span class="s2">&quot;CFile::__OpenForWriting&quot;</span>
162
-
163
- <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
164
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">False</span>
165
- <span class="n">sResult</span> <span class="o">=</span> <span class="s2">&quot;self.__sFile is None; please provide path and name of a file when creating a CFile object.&quot;</span>
166
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
167
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
168
-
169
- <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Close</span><span class="p">()</span>
170
- <span class="k">if</span> <span class="n">bSuccess</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">True</span><span class="p">:</span>
171
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
172
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
173
-
174
- <span class="k">try</span><span class="p">:</span>
175
- <span class="bp">self</span><span class="o">.</span><span class="n">__oFileHandle</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="p">,</span> <span class="s2">&quot;w&quot;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">&quot;utf-8&quot;</span><span class="p">)</span>
176
- <span class="bp">self</span><span class="o">.</span><span class="n">__oFileStatus</span> <span class="o">=</span> <span class="n">enFileStatiType</span><span class="o">.</span><span class="n">openedforwriting</span>
177
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">True</span>
178
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;File &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; is open for writing&quot;</span>
179
- <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">reason</span><span class="p">:</span>
180
- <span class="bp">self</span><span class="o">.</span><span class="n">Close</span><span class="p">()</span>
181
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">None</span>
182
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Not possible to open file &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; for writing.</span><span class="se">\n</span><span class="s2">Reason: &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">reason</span><span class="p">)</span>
183
-
184
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
185
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
186
-
187
- <span class="c1"># eof def __OpenForWriting(self):</span>
188
-
189
- <span class="c1"># --------------------------------------------------------------------------------------------------------------</span>
190
- <span class="c1"># TM***</span>
191
-
192
- <span class="k">def</span> <span class="nf">__OpenForAppending</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
193
- <span class="sd">&quot;&quot;&quot;</span>
194
- <span class="sd">|</span>
195
-
196
- <span class="sd">Opens a text file for appending.</span>
197
-
198
- <span class="sd">Returns ``bSuccess`` and ``sResult`` (feedback).</span>
199
-
200
- <span class="sd">|</span>
201
- <span class="sd"> &quot;&quot;&quot;</span>
202
-
203
- <span class="n">sMethod</span> <span class="o">=</span> <span class="s2">&quot;CFile::__OpenForAppending&quot;</span>
204
-
205
- <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
206
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">False</span>
207
- <span class="n">sResult</span> <span class="o">=</span> <span class="s2">&quot;self.__sFile is None; please provide path and name of a file when creating a CFile object.&quot;</span>
208
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
209
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
210
-
211
- <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Close</span><span class="p">()</span>
212
- <span class="k">if</span> <span class="n">bSuccess</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">True</span><span class="p">:</span>
213
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
214
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
215
-
216
- <span class="k">try</span><span class="p">:</span>
217
- <span class="bp">self</span><span class="o">.</span><span class="n">__oFileHandle</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="p">,</span> <span class="s2">&quot;a&quot;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">&quot;utf-8&quot;</span><span class="p">)</span>
218
- <span class="bp">self</span><span class="o">.</span><span class="n">__oFileStatus</span> <span class="o">=</span> <span class="n">enFileStatiType</span><span class="o">.</span><span class="n">openedforappending</span>
219
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">True</span>
220
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;File &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; is open for appending&quot;</span>
221
- <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">reason</span><span class="p">:</span>
222
- <span class="bp">self</span><span class="o">.</span><span class="n">Close</span><span class="p">()</span>
223
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">None</span>
224
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Not possible to open file &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; for appending.</span><span class="se">\n</span><span class="s2">Reason: &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">reason</span><span class="p">)</span>
225
-
226
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
227
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
228
-
229
- <span class="c1"># eof def __OpenForAppending(self):</span>
230
-
231
- <span class="c1"># --------------------------------------------------------------------------------------------------------------</span>
232
- <span class="c1"># TM***</span>
233
-
234
- <span class="k">def</span> <span class="nf">__OpenForReading</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
235
- <span class="sd">&quot;&quot;&quot;</span>
236
- <span class="sd">|</span>
237
-
238
- <span class="sd">Opens a text file for reading.</span>
239
-
240
- <span class="sd">Returns ``bSuccess`` and ``sResult`` (feedback).</span>
241
-
242
- <span class="sd">|</span>
243
- <span class="sd"> &quot;&quot;&quot;</span>
244
-
245
- <span class="n">sMethod</span> <span class="o">=</span> <span class="s2">&quot;CFile::__OpenForReading&quot;</span>
246
-
247
- <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
248
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">False</span>
249
- <span class="n">sResult</span> <span class="o">=</span> <span class="s2">&quot;self.__sFile is None; please provide path and name of a file when creating a CFile object.&quot;</span>
250
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
251
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
252
-
253
- <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Close</span><span class="p">()</span>
254
- <span class="k">if</span> <span class="n">bSuccess</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">True</span><span class="p">:</span>
255
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
256
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
257
-
258
- <span class="k">try</span><span class="p">:</span>
259
- <span class="bp">self</span><span class="o">.</span><span class="n">__oFileHandle</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="p">,</span> <span class="s2">&quot;r&quot;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">&quot;utf-8&quot;</span><span class="p">)</span>
260
- <span class="bp">self</span><span class="o">.</span><span class="n">__oFileStatus</span> <span class="o">=</span> <span class="n">enFileStatiType</span><span class="o">.</span><span class="n">openedforreading</span>
261
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">True</span>
262
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;File &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; is open for reading&quot;</span>
263
- <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">reason</span><span class="p">:</span>
264
- <span class="bp">self</span><span class="o">.</span><span class="n">Close</span><span class="p">()</span>
265
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">None</span>
266
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Not possible to open file &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; for reading.</span><span class="se">\n</span><span class="s2">Reason: &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">reason</span><span class="p">)</span>
267
-
268
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
269
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
270
-
271
- <span class="c1"># eof def __OpenForReading(self):</span>
272
-
273
- <span class="c1"># --------------------------------------------------------------------------------------------------------------</span>
274
- <span class="c1"># TM***</span>
275
-
276
- <div class="viewcode-block" id="CFile.Close"><a class="viewcode-back" href="../../../File.html#PythonExtensionsCollection.File.CFile.CFile.Close">[docs]</a> <span class="k">def</span> <span class="nf">Close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
277
- <span class="sd">&quot;&quot;&quot;</span>
278
- <span class="sd">|</span>
279
-
280
- <span class="sd">Closes the opened file.</span>
281
-
282
- <span class="sd">Returns ``bSuccess`` and ``sResult`` (feedback).</span>
283
-
284
- <span class="sd">|</span>
285
- <span class="sd"> &quot;&quot;&quot;</span>
286
- <span class="n">sMethod</span> <span class="o">=</span> <span class="s2">&quot;CFile::Close&quot;</span>
287
-
288
- <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__oFileHandle</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
289
- <span class="k">try</span><span class="p">:</span>
290
- <span class="bp">self</span><span class="o">.</span><span class="n">__oFileHandle</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
291
- <span class="bp">self</span><span class="o">.</span><span class="n">__oFileHandle</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
292
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">True</span>
293
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;File &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; closed&quot;</span>
294
- <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">reason</span><span class="p">:</span>
295
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">None</span>
296
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Exception while closing file &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39;.</span><span class="se">\n</span><span class="s2">Reason: &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">reason</span><span class="p">)</span>
297
- <span class="bp">self</span><span class="o">.</span><span class="n">__oFileHandle</span> <span class="o">=</span> <span class="kc">None</span>
298
- <span class="k">else</span><span class="p">:</span>
299
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">True</span>
300
- <span class="n">sResult</span> <span class="o">=</span> <span class="s2">&quot;Done&quot;</span>
301
-
302
- <span class="bp">self</span><span class="o">.</span><span class="n">__oFileStatus</span> <span class="o">=</span> <span class="n">enFileStatiType</span><span class="o">.</span><span class="n">closed</span>
303
-
304
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
305
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span></div>
306
-
307
- <span class="c1"># eof def Close(self):</span>
308
-
309
- <span class="c1"># --------------------------------------------------------------------------------------------------------------</span>
310
- <span class="c1"># TM***</span>
311
-
312
- <div class="viewcode-block" id="CFile.Delete"><a class="viewcode-back" href="../../../File.html#PythonExtensionsCollection.File.CFile.CFile.Delete">[docs]</a> <span class="k">def</span> <span class="nf">Delete</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bConfirmDelete</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
313
- <span class="sd">&quot;&quot;&quot;</span>
314
- <span class="sd">|</span>
315
-
316
- <span class="sd">Deletes the current file.</span>
317
-
318
- <span class="sd">**bConfirmDelete**</span>
319
-
320
- <span class="sd"> Defines if it will be handled as error if the file does not exist.</span>
321
-
322
- <span class="sd"> If ``True``: If the file does not exist, the method indicates an error (``bSuccess = False``).</span>
323
-
324
- <span class="sd"> If ``False``: It doesn&#39;t matter if the file exists or not.</span>
325
-
326
- <span class="sd">Returns ``bSuccess`` and ``sResult`` (feedback).</span>
327
-
328
- <span class="sd">|</span>
329
- <span class="sd"> &quot;&quot;&quot;</span>
330
-
331
- <span class="n">sMethod</span> <span class="o">=</span> <span class="s2">&quot;CFile::Delete&quot;</span>
332
-
333
- <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
334
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">False</span>
335
- <span class="n">sResult</span> <span class="o">=</span> <span class="s2">&quot;self.__sFile is None; please provide path and name of a file when creating a CFile object.&quot;</span>
336
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
337
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
338
-
339
- <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">False</span><span class="p">:</span>
340
- <span class="k">if</span> <span class="n">bConfirmDelete</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
341
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">False</span>
342
- <span class="k">else</span><span class="p">:</span>
343
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">True</span>
344
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Nothing to delete. The file &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; does not exist.&quot;</span>
345
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
346
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
347
-
348
- <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Close</span><span class="p">()</span>
349
- <span class="k">if</span> <span class="n">bSuccess</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">True</span><span class="p">:</span>
350
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
351
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
352
-
353
- <span class="k">try</span><span class="p">:</span>
354
- <span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="p">)</span>
355
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">True</span>
356
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;File &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; deleted.&quot;</span>
357
- <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">reason</span><span class="p">:</span>
358
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">None</span>
359
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Exception while deleting file &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39;.</span><span class="se">\n</span><span class="s2">Reason: &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">reason</span><span class="p">)</span>
360
-
361
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
362
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span></div>
363
-
364
- <span class="c1"># eof def Delete(self, bConfirmDelete=True):</span>
365
-
366
- <span class="c1"># --------------------------------------------------------------------------------------------------------------</span>
367
- <span class="c1"># TM***</span>
368
-
369
- <span class="k">def</span> <span class="nf">__PrepareOutput</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Content</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
370
- <span class="sd">&quot;&quot;&quot;</span>
371
- <span class="sd">|</span>
372
-
373
- <span class="sd">Helper for ``Write`` and ``Append`` (consideration of composite data types).</span>
374
-
375
- <span class="sd">Returns a list of strings (that will be written to file).</span>
376
-
377
- <span class="sd">|</span>
378
- <span class="sd"> &quot;&quot;&quot;</span>
379
-
380
- <span class="n">listOut</span> <span class="o">=</span> <span class="p">[]</span>
381
-
382
- <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">Content</span><span class="p">)</span> <span class="o">==</span> <span class="nb">list</span><span class="p">:</span>
383
- <span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">Content</span><span class="p">:</span>
384
- <span class="n">listOut</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">element</span><span class="p">))</span>
385
- <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">Content</span><span class="p">)</span> <span class="o">==</span> <span class="nb">tuple</span><span class="p">:</span>
386
- <span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">Content</span><span class="p">:</span>
387
- <span class="n">listOut</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">element</span><span class="p">))</span>
388
- <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">Content</span><span class="p">)</span> <span class="o">==</span> <span class="nb">set</span><span class="p">:</span>
389
- <span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">Content</span><span class="p">:</span>
390
- <span class="n">listOut</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">element</span><span class="p">))</span>
391
- <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">Content</span><span class="p">)</span> <span class="o">==</span> <span class="nb">dict</span><span class="p">:</span>
392
- <span class="n">listKeys</span> <span class="o">=</span> <span class="n">Content</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
393
- <span class="n">nRJust</span> <span class="o">=</span> <span class="mi">0</span>
394
- <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">listKeys</span><span class="p">:</span>
395
- <span class="n">sKey</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="c1"># because also numerical values can be keys</span>
396
- <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sKey</span><span class="p">)</span> <span class="o">&gt;</span> <span class="n">nRJust</span><span class="p">:</span>
397
- <span class="n">nRJust</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">sKey</span><span class="p">)</span>
398
- <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">listKeys</span><span class="p">:</span>
399
- <span class="n">sKey</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="c1"># because also numerical values can be keys</span>
400
- <span class="n">sOut</span> <span class="o">=</span> <span class="n">sKey</span><span class="o">.</span><span class="n">rjust</span><span class="p">(</span><span class="n">nRJust</span><span class="p">,</span> <span class="s1">&#39; &#39;</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot; : &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">Content</span><span class="p">[</span><span class="n">key</span><span class="p">])</span>
401
- <span class="n">listOut</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">sOut</span><span class="p">)</span>
402
- <span class="k">elif</span> <span class="nb">str</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">Content</span><span class="p">))</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;dotdict&#39;</span><span class="p">)</span> <span class="o">&gt;=</span><span class="mi">0</span><span class="p">:</span>
403
- <span class="k">try</span><span class="p">:</span>
404
- <span class="n">listKeys</span> <span class="o">=</span> <span class="n">Content</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
405
- <span class="n">nRJust</span> <span class="o">=</span> <span class="mi">0</span>
406
- <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">listKeys</span><span class="p">:</span>
407
- <span class="n">sKey</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="c1"># because also numerical values can be keys</span>
408
- <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sKey</span><span class="p">)</span> <span class="o">&gt;</span> <span class="n">nRJust</span><span class="p">:</span>
409
- <span class="n">nRJust</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">sKey</span><span class="p">)</span>
410
- <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">listKeys</span><span class="p">:</span>
411
- <span class="n">sKey</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="c1"># because also numerical values can be keys</span>
412
- <span class="n">sOut</span> <span class="o">=</span> <span class="n">sKey</span><span class="o">.</span><span class="n">rjust</span><span class="p">(</span><span class="n">nRJust</span><span class="p">,</span> <span class="s1">&#39; &#39;</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot; : &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">Content</span><span class="p">[</span><span class="n">key</span><span class="p">])</span>
413
- <span class="n">listOut</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">sOut</span><span class="p">)</span>
414
- <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">reason</span><span class="p">:</span>
415
- <span class="n">listOut</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">Content</span><span class="p">))</span>
416
- <span class="k">else</span><span class="p">:</span>
417
- <span class="n">listOut</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">Content</span><span class="p">))</span>
418
-
419
- <span class="k">return</span> <span class="n">listOut</span>
420
-
421
- <span class="c1"># eof def __PrepareOutput(self, Content=&quot;&quot;):</span>
422
-
423
- <span class="c1"># --------------------------------------------------------------------------------------------------------------</span>
424
- <span class="c1"># TM***</span>
425
-
426
- <div class="viewcode-block" id="CFile.Write"><a class="viewcode-back" href="../../../File.html#PythonExtensionsCollection.File.CFile.CFile.Write">[docs]</a> <span class="k">def</span> <span class="nf">Write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Content</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">nVSpaceAfter</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">sPrefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">bToScreen</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
427
- <span class="sd">&quot;&quot;&quot;</span>
428
- <span class="sd">|</span>
429
-
430
- <span class="sd">Writes the content of a variable ``Content`` to file.</span>
431
-
432
- <span class="sd">If ``Content`` is not a string, the ``Write`` method resolves the data structure (therefore ``Content`` can also be of type</span>
433
- <span class="sd">``list``, ``tuple``, ``set``, ``dict``, ``dotdict``).</span>
434
-
435
- <span class="sd">Adds vertical space ``nVSpaceAfter`` (= number of blank lines) after ``Content``.</span>
436
-
437
- <span class="sd">Prints ``Content`` also to screen in case of ``bToScreen`` is ``True`` (default: ``False``).</span>
438
-
439
- <span class="sd">Returns ``bSuccess`` and ``sResult`` (feedback).</span>
440
-
441
- <span class="sd">|</span>
442
- <span class="sd"> &quot;&quot;&quot;</span>
443
-
444
- <span class="n">sMethod</span> <span class="o">=</span> <span class="s2">&quot;CFile::Write&quot;</span>
445
-
446
- <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__oFileStatus</span> <span class="o">!=</span> <span class="n">enFileStatiType</span><span class="o">.</span><span class="n">openedforwriting</span><span class="p">:</span>
447
- <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__OpenForWriting</span><span class="p">()</span>
448
- <span class="k">if</span> <span class="n">bSuccess</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">True</span><span class="p">:</span>
449
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
450
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
451
-
452
- <span class="n">listOut</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__PrepareOutput</span><span class="p">(</span><span class="n">Content</span><span class="p">)</span>
453
-
454
- <span class="k">for</span> <span class="n">nCnt</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nVSpaceAfter</span><span class="p">):</span>
455
- <span class="n">listOut</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)</span>
456
-
457
- <span class="k">if</span> <span class="n">bToScreen</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
458
- <span class="k">for</span> <span class="n">sOut</span> <span class="ow">in</span> <span class="n">listOut</span><span class="p">:</span>
459
- <span class="k">if</span> <span class="p">(</span> <span class="p">(</span><span class="n">sPrefix</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">sOut</span> <span class="o">!=</span> <span class="s1">&#39;&#39;</span><span class="p">)</span> <span class="p">):</span>
460
- <span class="n">sOut</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">sPrefix</span><span class="si">}{</span><span class="n">sOut</span><span class="si">}</span><span class="s2">&quot;</span>
461
- <span class="nb">print</span><span class="p">(</span><span class="n">sOut</span><span class="p">)</span>
462
-
463
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">True</span>
464
- <span class="n">sResult</span> <span class="o">=</span> <span class="s2">&quot;Done&quot;</span>
465
- <span class="k">try</span><span class="p">:</span>
466
- <span class="k">for</span> <span class="n">sOut</span> <span class="ow">in</span> <span class="n">listOut</span><span class="p">:</span>
467
- <span class="k">if</span> <span class="p">(</span> <span class="p">(</span><span class="n">sPrefix</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">sOut</span> <span class="o">!=</span> <span class="s1">&#39;&#39;</span><span class="p">)</span> <span class="p">):</span>
468
- <span class="n">sOut</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">sPrefix</span><span class="si">}{</span><span class="n">sOut</span><span class="si">}</span><span class="s2">&quot;</span>
469
- <span class="bp">self</span><span class="o">.</span><span class="n">__oFileHandle</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">sOut</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
470
- <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">reason</span><span class="p">:</span>
471
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">None</span>
472
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Not possible to write to file &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39;.</span><span class="se">\n</span><span class="s2">Reason: &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">reason</span><span class="p">)</span>
473
-
474
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
475
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span></div>
476
-
477
- <span class="c1"># eof def Write(self, Content=&quot;&quot;, nVSpaceAfter=0, sPrefix=None, bToScreen=False):</span>
478
-
479
- <span class="c1"># --------------------------------------------------------------------------------------------------------------</span>
480
- <span class="c1"># TM***</span>
481
-
482
- <div class="viewcode-block" id="CFile.Append"><a class="viewcode-back" href="../../../File.html#PythonExtensionsCollection.File.CFile.CFile.Append">[docs]</a> <span class="k">def</span> <span class="nf">Append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Content</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">nVSpaceAfter</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">sPrefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">bToScreen</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
483
- <span class="sd">&quot;&quot;&quot;</span>
484
- <span class="sd">|</span>
485
-
486
- <span class="sd">Appends the content of a variable ``Content`` to file.</span>
487
-
488
- <span class="sd">If ``Content`` is not a string, the ``Write`` method resolves the data structure (therefore ``Content`` can also be of type</span>
489
- <span class="sd">``list``, ``tuple``, ``set``, ``dict``, ``dotdict``).</span>
490
-
491
- <span class="sd">Adds vertical space ``nVSpaceAfter`` (= number of blank lines) after ``Content``.</span>
492
-
493
- <span class="sd">Prints ``Content`` also to screen in case of ``bToScreen`` is ``True`` (default: ``False``).</span>
494
-
495
- <span class="sd">Returns ``bSuccess`` and ``sResult`` (feedback).</span>
496
-
497
- <span class="sd">|</span>
498
- <span class="sd"> &quot;&quot;&quot;</span>
499
-
500
- <span class="n">sMethod</span> <span class="o">=</span> <span class="s2">&quot;CFile::Append&quot;</span>
501
-
502
- <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__oFileStatus</span> <span class="o">!=</span> <span class="n">enFileStatiType</span><span class="o">.</span><span class="n">openedforappending</span><span class="p">:</span>
503
- <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__OpenForAppending</span><span class="p">()</span>
504
- <span class="k">if</span> <span class="n">bSuccess</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">True</span><span class="p">:</span>
505
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
506
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
507
-
508
- <span class="n">listOut</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__PrepareOutput</span><span class="p">(</span><span class="n">Content</span><span class="p">)</span>
509
-
510
- <span class="k">for</span> <span class="n">nCnt</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nVSpaceAfter</span><span class="p">):</span>
511
- <span class="n">listOut</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)</span>
512
-
513
- <span class="k">if</span> <span class="n">bToScreen</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
514
- <span class="k">for</span> <span class="n">sOut</span> <span class="ow">in</span> <span class="n">listOut</span><span class="p">:</span>
515
- <span class="k">if</span> <span class="p">(</span> <span class="p">(</span><span class="n">sPrefix</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">sOut</span> <span class="o">!=</span> <span class="s1">&#39;&#39;</span><span class="p">)</span> <span class="p">):</span>
516
- <span class="n">sOut</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">sPrefix</span><span class="si">}{</span><span class="n">sOut</span><span class="si">}</span><span class="s2">&quot;</span>
517
- <span class="nb">print</span><span class="p">(</span><span class="n">sOut</span><span class="p">)</span>
518
-
519
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">True</span>
520
- <span class="n">sResult</span> <span class="o">=</span> <span class="s2">&quot;Done&quot;</span>
521
- <span class="k">try</span><span class="p">:</span>
522
- <span class="k">for</span> <span class="n">sOut</span> <span class="ow">in</span> <span class="n">listOut</span><span class="p">:</span>
523
- <span class="k">if</span> <span class="p">(</span> <span class="p">(</span><span class="n">sPrefix</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">sOut</span> <span class="o">!=</span> <span class="s1">&#39;&#39;</span><span class="p">)</span> <span class="p">):</span>
524
- <span class="n">sOut</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">sPrefix</span><span class="si">}{</span><span class="n">sOut</span><span class="si">}</span><span class="s2">&quot;</span>
525
- <span class="bp">self</span><span class="o">.</span><span class="n">__oFileHandle</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">sOut</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
526
- <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">reason</span><span class="p">:</span>
527
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">None</span>
528
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Not possible to append to file &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39;.</span><span class="se">\n</span><span class="s2">Reason: &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">reason</span><span class="p">)</span>
529
-
530
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
531
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span></div>
532
-
533
- <span class="c1"># eof def Append(self, Content=&quot;&quot;, nVSpaceAfter=0, sPrefix=None, bToScreen=False):</span>
534
-
535
- <span class="c1"># --------------------------------------------------------------------------------------------------------------</span>
536
- <span class="c1"># TM***</span>
537
-
538
- <div class="viewcode-block" id="CFile.ReadLines"><a class="viewcode-back" href="../../../File.html#PythonExtensionsCollection.File.CFile.CFile.ReadLines">[docs]</a> <span class="k">def</span> <span class="nf">ReadLines</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
539
- <span class="n">bCaseSensitive</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
540
- <span class="n">bSkipBlankLines</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
541
- <span class="n">sComment</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
542
- <span class="n">sStartsWith</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
543
- <span class="n">sEndsWith</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
544
- <span class="n">sStartsNotWith</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
545
- <span class="n">sEndsNotWith</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
546
- <span class="n">sContains</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
547
- <span class="n">sContainsNot</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
548
- <span class="n">sInclRegEx</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
549
- <span class="n">sExclRegEx</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
550
- <span class="n">bLStrip</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
551
- <span class="n">bRStrip</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
552
- <span class="n">bToScreen</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
553
- <span class="sd">&quot;&quot;&quot;</span>
554
- <span class="sd">|</span>
555
-
556
- <span class="sd">Reads content from current file. Returns an array of lines together with ``bSuccess`` and ``sResult`` (feedback).</span>
557
-
558
- <span class="sd">The method takes care of opening and closing the file. The complete file content is read by ``ReadLines`` in one step,</span>
559
- <span class="sd">but with the help of further parameters it is possible to reduce the content by including and excluding lines.</span>
560
-
561
- <span class="sd">T.B.C.</span>
562
-
563
- <span class="sd">|</span>
564
- <span class="sd"> &quot;&quot;&quot;</span>
565
-
566
- <span class="n">sMethod</span> <span class="o">=</span> <span class="s2">&quot;[CFile::ReadLines]&quot;</span>
567
-
568
- <span class="n">listLines</span> <span class="o">=</span> <span class="p">[]</span>
569
-
570
- <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">False</span><span class="p">:</span>
571
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">False</span>
572
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;The file &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; does not exist.&quot;</span>
573
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
574
- <span class="k">return</span> <span class="n">listLines</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
575
-
576
- <span class="c1"># !!! independend from: self.__oFileStatus != enFileStatiType.openedforreading: !!!</span>
577
- <span class="c1"># Reason: Repeated call of ReadLines needs to have the read pointer at the beginning of the file.</span>
578
- <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__OpenForReading</span><span class="p">()</span>
579
- <span class="k">if</span> <span class="n">bSuccess</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">True</span><span class="p">:</span>
580
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
581
- <span class="k">return</span> <span class="n">listLines</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
582
-
583
- <span class="k">try</span><span class="p">:</span>
584
- <span class="n">sFileContent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__oFileHandle</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
585
- <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">reason</span><span class="p">:</span>
586
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">None</span>
587
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Not possible to read from file &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39;.</span><span class="se">\n</span><span class="s2">Reason: &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">reason</span><span class="p">)</span>
588
- <span class="k">return</span> <span class="n">listLines</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
589
-
590
- <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Close</span><span class="p">()</span>
591
- <span class="k">if</span> <span class="n">bSuccess</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">True</span><span class="p">:</span>
592
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
593
- <span class="k">return</span> <span class="n">listLines</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
594
-
595
- <span class="n">listFileContent</span> <span class="o">=</span> <span class="n">sFileContent</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()</span> <span class="c1"># in opposite to readlines this is OS independend!</span>
596
-
597
- <span class="k">for</span> <span class="n">sLine</span> <span class="ow">in</span> <span class="n">listFileContent</span><span class="p">:</span>
598
- <span class="k">if</span> <span class="n">CString</span><span class="o">.</span><span class="n">StringFilter</span><span class="p">(</span><span class="n">sString</span> <span class="o">=</span> <span class="n">sLine</span><span class="p">,</span>
599
- <span class="n">bCaseSensitive</span> <span class="o">=</span> <span class="n">bCaseSensitive</span><span class="p">,</span>
600
- <span class="n">bSkipBlankStrings</span> <span class="o">=</span> <span class="n">bSkipBlankLines</span><span class="p">,</span>
601
- <span class="n">sComment</span> <span class="o">=</span> <span class="n">sComment</span><span class="p">,</span>
602
- <span class="n">sStartsWith</span> <span class="o">=</span> <span class="n">sStartsWith</span><span class="p">,</span>
603
- <span class="n">sEndsWith</span> <span class="o">=</span> <span class="n">sEndsWith</span><span class="p">,</span>
604
- <span class="n">sStartsNotWith</span> <span class="o">=</span> <span class="n">sStartsNotWith</span><span class="p">,</span>
605
- <span class="n">sEndsNotWith</span> <span class="o">=</span> <span class="n">sEndsNotWith</span><span class="p">,</span>
606
- <span class="n">sContains</span> <span class="o">=</span> <span class="n">sContains</span><span class="p">,</span>
607
- <span class="n">sContainsNot</span> <span class="o">=</span> <span class="n">sContainsNot</span><span class="p">,</span>
608
- <span class="n">sInclRegEx</span> <span class="o">=</span> <span class="n">sInclRegEx</span><span class="p">,</span>
609
- <span class="n">sExclRegEx</span> <span class="o">=</span> <span class="n">sExclRegEx</span><span class="p">,</span>
610
- <span class="n">bDebug</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
611
- <span class="k">if</span> <span class="n">bLStrip</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
612
- <span class="n">sLine</span> <span class="o">=</span> <span class="n">sLine</span><span class="o">.</span><span class="n">lstrip</span><span class="p">(</span><span class="s2">&quot; </span><span class="se">\t\r\n</span><span class="s2">&quot;</span><span class="p">)</span>
613
-
614
- <span class="k">if</span> <span class="n">bRStrip</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
615
- <span class="n">sLine</span> <span class="o">=</span> <span class="n">sLine</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="s2">&quot; </span><span class="se">\t\r\n</span><span class="s2">&quot;</span><span class="p">)</span>
616
-
617
- <span class="k">if</span> <span class="n">bToScreen</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
618
- <span class="nb">print</span><span class="p">(</span><span class="n">sLine</span><span class="p">)</span>
619
-
620
- <span class="n">listLines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">sLine</span><span class="p">)</span>
621
-
622
- <span class="c1"># eof for sLine in listFileContent:</span>
623
-
624
- <span class="k">del</span> <span class="n">listFileContent</span>
625
-
626
- <span class="n">nNrOfLines</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">listLines</span><span class="p">)</span>
627
-
628
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">True</span>
629
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Read </span><span class="si">{</span><span class="n">nNrOfLines</span><span class="si">}</span><span class="s2"> lines from &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39;.&quot;</span>
630
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
631
- <span class="k">return</span> <span class="n">listLines</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span></div>
632
-
633
- <span class="c1"># eof def ReadLines(...)</span>
634
-
635
- <span class="c1"># --------------------------------------------------------------------------------------------------------------</span>
636
- <span class="c1"># TM***</span>
637
-
638
- <div class="viewcode-block" id="CFile.GetFileInfo"><a class="viewcode-back" href="../../../File.html#PythonExtensionsCollection.File.CFile.CFile.GetFileInfo">[docs]</a> <span class="k">def</span> <span class="nf">GetFileInfo</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
639
- <span class="sd">&quot;&quot;&quot;</span>
640
- <span class="sd">|</span>
641
-
642
- <span class="sd">Returns the following informations about the file (encapsulated within a dictionary):</span>
643
-
644
- <span class="sd">Key **sFile**</span>
645
-
646
- <span class="sd"> Path and name of current file</span>
647
-
648
- <span class="sd">Key **bFileIsExisting**</span>
649
-
650
- <span class="sd"> ``True`` if file is existing, otherwise not</span>
651
-
652
- <span class="sd">Key **sFileName**</span>
653
-
654
- <span class="sd"> The name of the current file (incl. extension)</span>
655
-
656
- <span class="sd">Key **sFileExtension**</span>
657
-
658
- <span class="sd"> The extension of the current file</span>
659
-
660
- <span class="sd">Key **sFileNameOnly**</span>
661
-
662
- <span class="sd"> The pure name of the current file (without extension)</span>
663
-
664
- <span class="sd">Key **sFilePath**</span>
665
-
666
- <span class="sd"> The the path to current file</span>
667
-
668
- <span class="sd">Key **bFilePathIsExisting**</span>
669
-
670
- <span class="sd"> ``True`` if file path is existing, otherwise not</span>
671
-
672
- <span class="sd">|</span>
673
- <span class="sd"> &quot;&quot;&quot;</span>
674
-
675
- <span class="n">sMethod</span> <span class="o">=</span> <span class="s2">&quot;CFile::GetFileInfo&quot;</span>
676
-
677
- <span class="n">dFileInfo</span> <span class="o">=</span> <span class="p">{}</span>
678
- <span class="n">dFileInfo</span><span class="p">[</span><span class="s1">&#39;sFile&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
679
- <span class="n">dFileInfo</span><span class="p">[</span><span class="s1">&#39;bFileIsExisting&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
680
- <span class="n">dFileInfo</span><span class="p">[</span><span class="s1">&#39;sFileName&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
681
- <span class="n">dFileInfo</span><span class="p">[</span><span class="s1">&#39;sFileExtension&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
682
- <span class="n">dFileInfo</span><span class="p">[</span><span class="s1">&#39;sFileNameOnly&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
683
- <span class="n">dFileInfo</span><span class="p">[</span><span class="s1">&#39;sFilePath&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
684
- <span class="n">dFileInfo</span><span class="p">[</span><span class="s1">&#39;bFilePathIsExisting&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
685
-
686
- <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
687
- <span class="k">return</span> <span class="kc">None</span>
688
-
689
- <span class="n">dFileInfo</span><span class="p">[</span><span class="s1">&#39;sFile&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span>
690
- <span class="n">dFileInfo</span><span class="p">[</span><span class="s1">&#39;bFileIsExisting&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="p">)</span>
691
-
692
- <span class="n">sFileName</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="p">)</span>
693
- <span class="n">dFileInfo</span><span class="p">[</span><span class="s1">&#39;sFileName&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sFileName</span>
694
-
695
- <span class="n">sFileExtension</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
696
- <span class="n">sFileNameOnly</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
697
- <span class="n">listParts</span> <span class="o">=</span> <span class="n">sFileName</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span>
698
- <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">listParts</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
699
- <span class="n">sFileExtension</span> <span class="o">=</span> <span class="n">listParts</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">listParts</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
700
- <span class="n">sFileNameOnly</span> <span class="o">=</span> <span class="n">sFileName</span><span class="p">[:</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="n">sFileExtension</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
701
- <span class="k">else</span><span class="p">:</span>
702
- <span class="n">sFileExtension</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
703
- <span class="n">sFileNameOnly</span> <span class="o">=</span> <span class="n">sFileName</span>
704
-
705
- <span class="n">dFileInfo</span><span class="p">[</span><span class="s1">&#39;sFileExtension&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sFileExtension</span>
706
- <span class="n">dFileInfo</span><span class="p">[</span><span class="s1">&#39;sFileNameOnly&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sFileNameOnly</span>
707
- <span class="n">dFileInfo</span><span class="p">[</span><span class="s1">&#39;sFilePath&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="p">)</span>
708
- <span class="n">dFileInfo</span><span class="p">[</span><span class="s1">&#39;bFilePathIsExisting&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">dFileInfo</span><span class="p">[</span><span class="s1">&#39;sFilePath&#39;</span><span class="p">])</span>
709
-
710
- <span class="k">return</span> <span class="n">dFileInfo</span></div>
711
-
712
- <span class="c1"># eof def GetFileInfo(self):</span>
713
-
714
- <span class="c1"># --------------------------------------------------------------------------------------------------------------</span>
715
- <span class="c1"># TM***</span>
716
-
717
- <div class="viewcode-block" id="CFile.CopyTo"><a class="viewcode-back" href="../../../File.html#PythonExtensionsCollection.File.CFile.CFile.CopyTo">[docs]</a> <span class="k">def</span> <span class="nf">CopyTo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sDestination</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">bOverwrite</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
718
- <span class="sd">&quot;&quot;&quot;</span>
719
- <span class="sd">|</span>
720
-
721
- <span class="sd">Copies the current file to ``sDestination``, that can either be a path without file name or a path together with a file name.</span>
722
-
723
- <span class="sd">In case of the destination file already exists and ``bOverwrite`` is ``True``, than the destination file will be overwritten.</span>
724
-
725
- <span class="sd">In case of the destination file already exists and ``bOverwrite`` is ``False`` (default), than the destination file will not be overwritten</span>
726
- <span class="sd">and ``CopyTo`` returns ``bSuccess = False``.</span>
727
-
728
- <span class="sd">Returns ``bSuccess`` and ``sResult`` (feedback).</span>
729
-
730
- <span class="sd">|</span>
731
- <span class="sd"> &quot;&quot;&quot;</span>
732
-
733
- <span class="n">sMethod</span> <span class="o">=</span> <span class="s2">&quot;CFile::CopyTo&quot;</span>
734
-
735
- <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
736
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">False</span>
737
- <span class="n">sResult</span> <span class="o">=</span> <span class="s2">&quot;self.__sFile is None; please provide path and name of a file when creating a CFile object.&quot;</span>
738
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
739
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
740
-
741
- <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">False</span><span class="p">:</span>
742
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">False</span>
743
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;The file &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; does not exist, therefore nothing can be copied.&quot;</span>
744
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
745
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
746
-
747
- <span class="k">if</span> <span class="n">sDestination</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
748
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">False</span>
749
- <span class="n">sResult</span> <span class="o">=</span> <span class="s2">&quot;sDestination is None; please provide path and name of destination file. Or at least the destination path. In this case the file name will be taken over.&quot;</span>
750
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
751
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
752
-
753
- <span class="n">sDestination</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">NormalizePath</span><span class="p">(</span><span class="n">sDestination</span><span class="p">)</span>
754
-
755
- <span class="n">bDeleteDestFile</span> <span class="o">=</span> <span class="kc">False</span>
756
-
757
- <span class="n">sDestFile</span> <span class="o">=</span> <span class="n">sDestination</span> <span class="c1"># default</span>
758
-
759
- <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">sDestination</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
760
- <span class="n">sFileName</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="p">)</span>
761
- <span class="n">sDestFile</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">sDestination</span><span class="si">}</span><span class="s2">/</span><span class="si">{</span><span class="n">sFileName</span><span class="si">}</span><span class="s2">&quot;</span> <span class="c1"># file name in destination is required for: shutil.copyfile</span>
762
-
763
- <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__bIsFreeToUse</span><span class="p">(</span><span class="n">sDestFile</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">False</span><span class="p">:</span>
764
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">False</span>
765
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;The destination file &#39;</span><span class="si">{</span><span class="n">sDestFile</span><span class="si">}</span><span class="s2">&#39; is already in use by another CFile instance.&quot;</span>
766
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
767
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
768
-
769
- <span class="bp">self</span><span class="o">.</span><span class="n">__sLastDestination</span> <span class="o">=</span> <span class="n">sDestFile</span>
770
-
771
- <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">sDestFile</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
772
- <span class="c1"># destination file already exists</span>
773
- <span class="k">if</span> <span class="n">sDestFile</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="p">:</span>
774
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">False</span>
775
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Source file and destination file are the same: &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39;. Therefore nothing to do.&quot;</span>
776
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
777
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
778
-
779
- <span class="k">if</span> <span class="n">bOverwrite</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
780
- <span class="n">bDeleteDestFile</span> <span class="o">=</span> <span class="kc">True</span>
781
- <span class="k">else</span><span class="p">:</span>
782
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">False</span>
783
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Not allowed to overwrite existing destination file &#39;</span><span class="si">{</span><span class="n">sDestFile</span><span class="si">}</span><span class="s2">&#39;. Therefore nothing to do.&quot;</span>
784
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
785
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
786
- <span class="k">else</span><span class="p">:</span>
787
- <span class="c1"># destination file not yet exists</span>
788
- <span class="c1"># (we assume here that the destination shall be a file because we already have figured out that the destination is not a folder)</span>
789
- <span class="c1"># =&gt; we have to check if the path to the file exists</span>
790
- <span class="n">sDestFilePath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">sDestFile</span><span class="p">)</span>
791
- <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">sDestFilePath</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
792
- <span class="n">bDeleteDestFile</span> <span class="o">=</span> <span class="kc">False</span>
793
- <span class="k">else</span><span class="p">:</span>
794
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">False</span>
795
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;The destination path &#39;</span><span class="si">{</span><span class="n">sDestFilePath</span><span class="si">}</span><span class="s2">&#39; does not exist. The file &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; cannot be copied.&quot;</span>
796
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
797
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
798
-
799
- <span class="c1"># eof else - if os.path.isfile(sDestFile) is True:</span>
800
-
801
- <span class="c1"># analysis done, now the action</span>
802
-
803
- <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Close</span><span class="p">()</span>
804
- <span class="k">if</span> <span class="n">bSuccess</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">True</span><span class="p">:</span>
805
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
806
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
807
-
808
- <span class="k">if</span> <span class="n">bDeleteDestFile</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
809
- <span class="c1"># To delete the destination file explicitely before executing any copy-function is an addon here in this library.</span>
810
- <span class="c1"># The purpose is to be independend from the way the used copy function is handling existing destination files.</span>
811
- <span class="c1"># But this makes only sense under Windows and not under Linux, because Windows is much more strict with access</span>
812
- <span class="c1"># violations than Linux. Therefore we avoid such kind of additional steps in case of the platform is not Windows.</span>
813
- <span class="k">if</span> <span class="n">platform</span><span class="o">.</span><span class="n">system</span><span class="p">()</span> <span class="o">==</span> <span class="s2">&quot;Windows&quot;</span><span class="p">:</span>
814
- <span class="k">try</span><span class="p">:</span>
815
- <span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">sDestFile</span><span class="p">)</span>
816
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">True</span>
817
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;File &#39;</span><span class="si">{</span><span class="n">sDestFile</span><span class="si">}</span><span class="s2">&#39; deleted.&quot;</span>
818
- <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">reason</span><span class="p">:</span>
819
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">None</span>
820
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Exception while deleting destination file &#39;</span><span class="si">{</span><span class="n">sDestFile</span><span class="si">}</span><span class="s2">&#39;.</span><span class="se">\n</span><span class="s2">Reason: &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">reason</span><span class="p">)</span>
821
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
822
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
823
-
824
- <span class="k">try</span><span class="p">:</span>
825
- <span class="n">shutil</span><span class="o">.</span><span class="n">copyfile</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="p">,</span> <span class="n">sDestFile</span><span class="p">)</span>
826
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">True</span>
827
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;File &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; copied to &#39;</span><span class="si">{</span><span class="n">sDestFile</span><span class="si">}</span><span class="s2">&#39;.&quot;</span>
828
- <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">reason</span><span class="p">:</span>
829
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">None</span>
830
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Exception while copying file &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; to &#39;</span><span class="si">{</span><span class="n">sDestFile</span><span class="si">}</span><span class="s2">&#39;.</span><span class="se">\n</span><span class="s2">Reason: &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">reason</span><span class="p">)</span>
831
-
832
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
833
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span></div>
834
-
835
- <span class="c1"># eof def CopyTo(self, sDestination=None, bOverwrite=False):</span>
836
-
837
- <span class="c1"># --------------------------------------------------------------------------------------------------------------</span>
838
- <span class="c1"># TM***</span>
839
-
840
- <div class="viewcode-block" id="CFile.MoveTo"><a class="viewcode-back" href="../../../File.html#PythonExtensionsCollection.File.CFile.CFile.MoveTo">[docs]</a> <span class="k">def</span> <span class="nf">MoveTo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sDestination</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">bOverwrite</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
841
- <span class="sd">&quot;&quot;&quot;</span>
842
- <span class="sd">|</span>
843
-
844
- <span class="sd">Moves the current file to ``sDestination``, that can either be a path without file name or a path together with a file name.</span>
845
-
846
- <span class="sd">In case of the destination file already exists and ``bOverwrite`` is ``True``, than the destination file will be overwritten.</span>
847
-
848
- <span class="sd">In case of the destination file already exists and ``bOverwrite`` is ``False`` (default), than the destination file will not be overwritten</span>
849
- <span class="sd">and ``CopyTo`` returns ``bSuccess = False``.</span>
850
-
851
- <span class="sd">Returns ``bSuccess`` and ``sResult`` (feedback).</span>
852
-
853
- <span class="sd">|</span>
854
- <span class="sd"> &quot;&quot;&quot;</span>
855
-
856
- <span class="n">sMethod</span> <span class="o">=</span> <span class="s2">&quot;CFile::MoveTo&quot;</span>
857
-
858
- <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">CopyTo</span><span class="p">(</span><span class="n">sDestination</span><span class="p">,</span> <span class="n">bOverwrite</span><span class="p">)</span>
859
- <span class="k">if</span> <span class="n">bSuccess</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">True</span><span class="p">:</span>
860
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
861
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
862
-
863
- <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__sLastDestination</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">False</span><span class="p">:</span>
864
- <span class="c1"># the copied file should exist at new location</span>
865
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">None</span>
866
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Someting went wrong while copying the file &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; to &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sLastDestination</span><span class="si">}</span><span class="s2">&#39;. Aborting.&quot;</span>
867
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
868
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
869
- <span class="k">else</span><span class="p">:</span>
870
- <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Delete</span><span class="p">()</span>
871
- <span class="k">if</span> <span class="n">bSuccess</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">True</span><span class="p">:</span>
872
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
873
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span>
874
-
875
- <span class="n">bSuccess</span> <span class="o">=</span> <span class="kc">True</span>
876
- <span class="n">sResult</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;File moved from &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sFile</span><span class="si">}</span><span class="s2">&#39; to &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">__sLastDestination</span><span class="si">}</span><span class="s2">&#39;&quot;</span>
877
- <span class="n">sResult</span> <span class="o">=</span> <span class="n">CString</span><span class="o">.</span><span class="n">FormatResult</span><span class="p">(</span><span class="n">sMethod</span><span class="p">,</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span><span class="p">)</span>
878
- <span class="k">return</span> <span class="n">bSuccess</span><span class="p">,</span> <span class="n">sResult</span></div></div>
879
-
880
- <span class="c1"># eof def MoveTo(self, sDestination=None, bOverwrite=False):</span>
881
-
882
- <span class="c1"># --------------------------------------------------------------------------------------------------------------</span>
883
- <span class="c1"># TM***</span>
884
-
885
- <span class="c1"># eof class CFile(object):</span>
886
-
887
- <span class="c1"># **************************************************************************************************************</span>
888
-
889
-
890
- </pre></div>
891
-
892
- </div>
893
-
894
- </div>
895
- </div>
896
- <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
897
- <div class="sphinxsidebarwrapper">
898
- <h1 class="logo"><a href="../../../index.html">Python Extensions Collection</a></h1>
899
-
900
-
901
-
902
-
903
-
904
-
905
-
906
-
907
- <h3>Navigation</h3>
908
- <ul>
909
- <li class="toctree-l1"><a class="reference internal" href="../../../additional_doc/Introduction.html">1. Introduction</a></li>
910
- <li class="toctree-l1"><a class="reference internal" href="../../../additional_doc/Introduction.html#examples">2. Examples</a></li>
911
- <li class="toctree-l1"><a class="reference internal" href="../../../String.html">3. CString module</a></li>
912
- <li class="toctree-l1"><a class="reference internal" href="../../../Utils.html">4. CUtils module</a></li>
913
- <li class="toctree-l1"><a class="reference internal" href="../../../File.html">5. CFile module</a></li>
914
- </ul>
915
-
916
- <div class="relations">
917
- <h3>Related Topics</h3>
918
- <ul>
919
- <li><a href="../../../index.html">Documentation overview</a><ul>
920
- <li><a href="../../index.html">Module code</a><ul>
921
- </ul></li>
922
- </ul></li>
923
- </ul>
924
- </div>
925
- <div id="searchbox" style="display: none" role="search">
926
- <h3 id="searchlabel">Quick search</h3>
927
- <div class="searchformwrapper">
928
- <form class="search" action="../../../search.html" method="get">
929
- <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
930
- <input type="submit" value="Go" />
931
- </form>
932
- </div>
933
- </div>
934
- <script>document.getElementById('searchbox').style.display = "block"</script>
935
-
936
-
937
-
938
-
939
-
940
-
941
-
942
-
943
- </div>
944
- </div>
945
- <div class="clearer"></div>
946
- </div>
947
- <div class="footer">
948
- &copy;2022, Queckenstedt Holger (XC-CT/ECA3).
949
-
950
- |
951
- Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.0</a>
952
- &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
953
-
954
- </div>
955
-
956
-
957
-
958
-
959
- </body>
960
- </html>