前提・実現したいこと
googleスプレットシートに入力された迷路の表示
使用環境:windows7 PC 使用言語はpython3.7.4です
##質問の内容
1 google drive においてスプレットシートにいくらか複雑な迷路を描き,
against_againstというファイルに保存。
2 against_againstに以下のプログラムを保存。
pro.1ファイル名:maze_show.py
from tkinter import* tile_size=20 def load_map_data(): from maru_data import data return data def draw_map(cv,data): rows=len(data) cols=len(data[0]) for y in range(rows): y1=y* tile_size y2=y1+ tile_size for x in range(cols): x1=x*tile_size x2=x1+tile_size p=data[y][x] if p==0:color="white" if p==1:color="#404040" if p==2:color="red" if p==3:color="blue" cv.create_rectangle( x1,y1,x2,y2, fill=color, outline="black",width=2) def create_window(map_data,events=[]): win=Tk() win.title("迷路") rows=len(map_data) cols=len(map_data[0]) cv=Canvas(win, width=(cols*tile_size), height=(rows*tile_size)) cv.pack() draw_map(cv,map_data) for func in events: func(cv,map_data) win.mainloop() if __name__=="__main__": map_data=load_map_data() create_window(map_data) その後、以下のプログラムの製作。 from tkinter import* from maze_show import create_window def load_map_from_tsv(filename): fp=open(filename,"rt",encoding="utf-8") tsv= fp.read() rows=tsv.split("\n") result=[] for line in rows: cols=line.split("\t") if len (cols)<=1:break cols=list(map(int,cols)) result.append(cols) return result if __name__=="__main__": map_data=load_map_from_tsv("maze2.tsv.tsv") create_window(map_data)
※maze2 とは、googleスプレットシートのagainst_againstへの保存名です※
その後、このプログラムをagainst_againstに保存、名前をmaze_show2.pyとし、実行。
今度こそはうまくいってくれと思っていたら…
エラーメッセージ
Traceback (most recent call last): File "C:\Users\MARUYAMA\Desktop\against_against\maze_show.2.py", line 19, in <module> map_data=load_map_from_tsv("maze2.tsv.tsv") File "C:\Users\MARUYAMA\Desktop\against_against\maze_show.2.py", line 14, in load_map_from_tsv cols=list(map(int,cols)) ValueError: invalid literal for int() with base 10: ''
試したこと
ファイルの誤字・脱字の確認
COLSの直接的な代入
補足情報(FW/ツールのバージョンなど)
出力される筈のGOOGLE スプレットシートの情報
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 2 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 0 1 0 0 0 1 0 1 1 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
何度も質問申し訳ないです…
どなたかご教授ください~!
> File "C:\Users\MARUYAMA\Desktop\against_against\maze_show.2.py", line 19, in <module>
map_data=load_map_from_tsv("maze2.tsv.tsv")
maze2.tsv.tsvというファイル名は合ってるんすかコレ?
ん?ああ!
そうでした。間違ってますねクォレハ…
map_data=load_map_from_tsv("maze2.tsv.tsv")を
map_data=load_map_from_tsv("maze2.tsv")
訂正しました。ありがとうございます!
訂正しましたら...
Traceback (most recent call last):
File "C:\Users\MARUYAMA\Desktop\against_against\maze_show.2.py", line 19, in <module>
map_data=load_map_from_tsv("maze2.tsv")
File "C:\Users\MARUYAMA\Desktop\against_against\maze_show.2.py", line 6, in load_map_from_tsv
fp=open(filename,"rt",encoding="utf-8")
FileNotFoundError: [Errno 2] No such file or directory: 'maze2.tsv'
とはかれました…
maze2 はちゃんとagainst_againstに保存されている筈のなですが…
なぜなんでしょう...
コードが読めないので、質問文を編集して<code>ボタンを適切に使ってください。プレブューでちゃんと表示されるようにして
あっ…これは大変申し訳ないことをいたしました…
今訂正します
上のやり取りに関してですが、拡張子を表示しないエクスプローラの設定になってませんか? プログラミングに不向きなので表示させてください。本来のファイル名がmaze2.tsv.tsvになっている可能性もあります。
コメントありがとうございます!
今拡張子を表示するようにしました。
ああっ。確かに、もともとのファイル名はmaze2.tsv.tsvでした…
回答1件
あなたの回答
tips
プレビュー