私は、このファイルの最初の大文字の単語を解析していますスクリプトを持っている:IndexErrorまでの解析が成功しましたか?
IMPORT fs
IF fs.exists("fs.pyra") THEN
PRINT "fs.pyra Exists!"
END
スクリプトは次のようになります。
file = open(sys.argv[1], "r")
file = file.read().split("\n")
while '' in file:
findIt = file.index('')
file.pop(findIt)
for line in file:
func = ""
index = 0
while line[index] == " ":
index = index + 1
while not line[index] == " " or "=" and line[index].isupper():
func = func + line[index]
index = index + 1
print func
すべて使用されるモジュールがすでにインポートされています。
私は、引数内の解析されたパスされていたファイルを渡され、私はこの出力を取得しています:
IMPORT
IF
PRINT
Traceback (most recent call last):
File "src/source.py", line 20, in <module>
while not line[index] == " " or "=" and line[index].isupper():
IndexError: string index out of range
それは、リスト内の最後の引数まで首尾よく解析していますし、それがすべてでそれを解析していないを意味し、どの。これをどうやって解決するのですか?
'[インデックス] ==「」または「=」'を行ないが、それは例えば、各ラインから大文字で見つかったトークン非常に最初の名前を取りますあなたが思っていることをやっていない - 代わりに '( '=')'を意味するのだろうか? –
'file.read()。split(" \ n ")' ...?なぜ、 'file.readlines()'はありませんか? –
@ cricket_007 'file.readlines()'は改行文字をその中に残します。 – baranskistad