質問編集履歴

3

詳細なsample.pyコードを追加しました

2024/12/13 16:27

投稿

lotoemon
lotoemon

スコア15

test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  ```
18
18
  #-------------------------------------------------------
19
- # フォルダの上の階層を検出する |
19
+ # フォルダの上の階層を検出する (pyPackの下層に保存してます) |
20
20
  #-------------------------------------------------------
21
21
  def TargetPath(path,key):
22
22
 
@@ -51,6 +51,80 @@
51
51
  result = 'error'
52
52
 
53
53
  return result
54
+ #-------------------------------------------------------
55
+ # より詳細なsample.py |
56
+ #-------------------------------------------------------
57
+ import os
58
+ import sys
59
+
60
+ # pyPackフォルダ(モジュール群)を読みにいっています
61
+ sys.path.append(os.path.join(os.path.dirname(__file__), '../../../../pyCode'))
62
+
63
+ import pyPack
64
+ import time
65
+ import datetime
66
+ import glob
67
+ import shutil
68
+ import subprocess
69
+ import tkinter as tk
70
+
71
+ title = 'sample'
72
+ scnd = 2
73
+ xLen = 60
74
+
75
+ # モジュールを呼出してpopUpメニューを表示
76
+ pyPack.modu.PopUp(scnd,'Start To '+title,250,70)
77
+
78
+ # モジュールを呼出してフルパスを取得する
79
+ # Windowsの場合 C:/○○/pyBOO
80
+ # linuxの場合  /home/ユーザー名/○○/pyBOO
81
+ # ここが問題の絶対パスを作成するモジュールです
82
+ rtDir = pyPack.modu2.TargetPath(os.getcwd(),'pyBOO')
83
+
84
+ # 現在のコードの在るパス
85
+ here = rtDir +'/pyCode/cMarket/FX/USDJPY'
86
+
87
+ # モジュールを呼出して、処理結果を格納するパス(文字列のみ)の作成
88
+ there = pyPack.modu2.IsThere(here)
89
+
90
+ # モジュールを呼出して、thereのフォルダを作成する
91
+ pyPack.modu2.DirMaker(there)
92
+
93
+ # 何かしらの処理をして'there'に格納する
94
+
95
+ #---- モジュールを呼出し、osがWindowsの場合の処理
96
+ if pyPack.modu2.HowOS(1) == 'windows':
97
+
98
+ # rtDir = C:/share/pyBOO
99
+ print(rtDir)
100
+
101
+ # there = C:/share/pyBOO/pyData/dMarket/FX/USDJPY
102
+ print(there)
103
+
104
+ # paramikoにてLinuxサーバーへファイル転送する処理
105
+
106
+ #---- モジュールを呼出し、osがLinuxの場合の処理
107
+ elif pyPack.modu2.HowOS(1) == 'linux':
108
+
109
+ # rtDir = '/home/ユーザー名/share/pyBOO'
110
+ print(rtDir)
111
+
112
+ # there = '/home/ユーザー名/share/pyBOO/pyData/dMarket/FX/USDJPY'
113
+ print(there)
114
+
115
+ # smbClientにてLinuxサーバーへファイル転送する処理
116
+
117
+ # Windowsは'python' Linuxは'python3'と出力
118
+ pyType = pyPack.modu2.HowOS(3)
119
+
120
+ #---- 次のnext.pyの処理へ (ここがTerminalでエラーになる元凶です)
121
+ #---- 絶対パスを指定すればTerminalでも実行できました
122
+ nPath = here+'/subDir/next.py'
123
+ subprocess.Popen([pyType,nPath])
124
+
125
+ # モジュールを呼出してpopUpメニューを表示
126
+ print('\n[終了]',title,'\n')
127
+ pyPack.modu.PopUp(scnd,title+' Closing',250,70)
54
128
  ```
55
129
 
56
130
  ### 試したこと・調べたこと

2

コードを追加しました

2024/12/12 16:30

投稿

lotoemon
lotoemon

スコア15

test CHANGED
File without changes
test CHANGED
@@ -15,7 +15,42 @@
15
15
  ### 該当のソースコード
16
16
 
17
17
  ```
18
+ #-------------------------------------------------------
19
+ # フォルダの上の階層を検出する |
20
+ #-------------------------------------------------------
21
+ def TargetPath(path,key):
22
+
23
+ cnt = 0
24
+
18
- 特になし
25
+ try:
26
+
27
+ int(key)
28
+ if key == 0:
29
+ path = os.path.basename(path)
30
+ elif key > 0:
31
+ while cnt < key:
32
+ cnt+= 1
33
+ path = os.path.dirname(path)
34
+
35
+ if path == '/':
36
+ result = 'error'
37
+ else:
38
+ result = path
39
+
40
+ except ValueError:
41
+
42
+ while cnt < 15:
43
+ cnt+= 1
44
+ result = os.path.basename(path)
45
+
46
+ if result == key:
47
+ result = path
48
+ break
49
+ else:
50
+ path = os.path.dirname(path)
51
+ result = 'error'
52
+
53
+ return result
19
54
  ```
20
55
 
21
56
  ### 試したこと・調べたこと

1

誤字があった

2024/12/01 17:32

投稿

lotoemon
lotoemon

スコア15

test CHANGED
File without changes
test CHANGED
@@ -30,7 +30,7 @@
30
30
  $ python3 /home/test/samle.py
31
31
 
32
32
  と実行すとそのファイルのみ実行し、表示できますが、
33
- ニュー画面をtkinterで作成して次のファイルを実行すると
33
+ メニュー画面をtkinterで作成して次のファイルを実行すると
34
34
  python3: can't open file '/home/test/next.py: [Errno 2] No such file or directory
35
35
  となります。
36
36