質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1114閲覧

Google Colaboratory 随時ファイル書き込みが出来ない

退会済みユーザー

退会済みユーザー

総合スコア0

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/01/11 05:31

ファイル(text.txt)に随時書き込み、セッションが切れたとしてもfor文がどこまで実行したかの値を保持し続け、
90分ルールやkeyboard Interruptなどの影響があったときにも対処できるようにしたつもりです。
しかし、実際は、値を保持してくれずkeyboard Interruptで強制的にストップをかけたときにtext.txtに値は何もありません。
解決方法を教えて頂けると幸いです。

python

1import numpy as np 2from itertools import product 3 4file01 = open('drive/My Drive/file/text.txt') 5data01 = file01.read() 6file01.close() 7init = data01.split(' ') 8 9flag = 0 10 11for n08 in range(0, 33): 12 for n07 in range(0, 33): 13 for n06 in range(0, 33): 14 for n05 in range(0, 33): 15 for n04 in range(0, 33): 16 for n03 in range(0, 33): 17 for n02 in range(0, 33): 18 for n01 in range(0, 33): 19 20 #print('{0} {1} {2} {3} {4} {5} {6} {7}'.format(n01, n02, n03, n04, n05, n06, n07, n08)) 21 text02 = str(n01) + ' ' + str(n02) + ' ' + str(n03) + ' ' + str(n04) + ' ' + str(n05) + ' ' + str(n06) + ' ' + str(n07) + ' ' + str(n08) 22 file02 = open('drive/My Drive/file/text.txt', 'w') 23 file02.write(text) 24 file02.close() 25 26 if flag == 0: 27 n01, n02, n03, n04, n05, n06, n07, n08 = [int(num) for num in init] 28 flag = 1 29 30 a, b, c, d, e, f, g, h = 0, 0, 0, 0, 0, 0, 0, 0 31 32 W = [] 33 34 W.append(n01), W.append(n02), W.append(n03), W.append(n04), W.append(n05), W.append(n06), W.append(n07), W.append(n08) # 変動値 35 W.append(0), W.append(0), W.append(0), W.append(0), W.append(0), W.append(0), W.append(0), W.append(0) # 固定値 36 37 def function_02(num01, num02): 38 x = np.array([num01, num02]) 39 40 sign = np.array([s for s in product([1, -1], repeat=len(x))]) # 符号の全パターン #(+, -)を(1, -1)で表現 41 42 y = sign * x # 符号付きの全パターン 43 44 idx = np.abs(y.sum(axis=1)).argmin() # 0に一番近い組み合わせの探索 45 46 return abs(y[idx].sum()) 47 48 def function_04(num01, num02, num03, num04): 49 x = np.array([num01, num02, num03, num04]) 50 51 sign = np.array([s for s in product([1, -1], repeat=len(x))]) # 符号の全パターン #(+, -)を(1, -1)で表現 52 53 y = sign * x # 符号付きの全パターン 54 55 idx = np.abs(y.sum(axis=1)).argmin() # 0に一番近い組み合わせの探索 56 57 return abs(y[idx].sum()) 58 59 def function_05(num01, num02, num03, num04, num05): 60 x = np.array([num01, num02, num03, num04, num05]) 61 62 sign = np.array([s for s in product([1, -1], repeat=len(x))]) # 符号の全パターン #(+, -)を(1, -1)で表現 63 64 y = sign * x # 符号付きの全パターン 65 66 idx = np.abs(y.sum(axis=1)).argmin() # 0に一番近い組み合わせの探索 67 68 return abs(y[idx].sum()) 69 70 for i in range(64): 71 72 if i >= 16: 73 if W[i-2] <= 3 and W[i-15] <=3: 74 W.append(function_04(2*W[i-2]%32, W[i-7], 2*W[i-15]%32, W[i-16])) 75 elif W[i-2] <= 3: 76 W.append(function_04(2*W[i-2]%32, W[i-7], 3*W[i-15]%32, W[i-16])) 77 elif W[i-15] <= 3: 78 W.append(function_04(3*W[i-2]%32, W[i-7], 2*W[i-15]%32, W[i-16])) 79 else: 80 W.append(function_04(3*W[i-2]%32, W[i-7], 3*W[i-15]%32, W[i-16])) 81 82 T2 = function_02(3*e%32, min(a, b, c)) 83 T1 = function_05(T2, h, 3*e%32, min(e, f, g), W[i]) 84 85 h = g 86 g = f 87 f = e 88 e = function_02(d, T1) 89 d = c 90 c = b 91 b = a 92 a = function_02(T1, T2) 93 94 if a == 0 and b == 0 and c == 0 and d == 0 and e == 0 and f == 0 and g == 0 and h == 0: 95 text = str(n01) + ' ' + str(n02) + ' ' + str(n03) + ' ' + str(n04) + ' ' + str(n05) + ' ' + str(n06) + ' ' + str(n07) + ' ' + str(n08) 96 file = open('drive/My Drive/file/result.txt', 'w') 97 file.write(text) 98 file.close() 99 # print('{0} {1} {2} {3} {4} {5} {6} {7}'.format(n01, n02, n03, n04, n05, n06, n07, n08))

error

1--------------------------------------------------------------------------- 2KeyboardInterrupt Traceback (most recent call last) 3<ipython-input-25-5c77bfe4fa25> in <module>() 4 17 #print('{0} {1} {2} {3} {4} {5} {6} {7}'.format(n01, n02, n03, n04, n05, n06, n07, n08)) 5 18 text02 = str(n01) + ' ' + str(n02) + ' ' + str(n03) + ' ' + str(n04) + ' ' + str(n05) + ' ' + str(n06) + ' ' + str(n07) + ' ' + str(n08) 6---> 19 file02 = open('drive/My Drive/file/text.txt', 'w') 7 20 file02.write(text) 8 21 file02.close() 9 10/usr/lib/python3.6/_bootlocale.py in getpreferredencoding(do_setlocale) 11 21 return locale.getpreferredencoding(do_setlocale) 12 22 else: 13---> 23 def getpreferredencoding(do_setlocale=True): 14 24 assert not do_setlocale 15 25 result = _locale.nl_langinfo(_locale.CODESET) 16 17KeyboardInterrupt:

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

try:
except KeyboardInterrupt:
とかは どうでしょうか

投稿2020/01/11 12:32

Reach

総合スコア733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問