私は、ユーザーからのファイルパスを取得し、ファイルパスがa)実際にはファイルを開く正当なファイルパスであることを確認するブロックを作成しようとしています。 .txtファイルの最初と最後の行、このパターンフィット:それは今あるのでPythonの正規表現がパターンと一致しない
-53.750 120.900 49.805
を、私が使用しているコードは、パターンマッチングではなく、任意のファイルを受け入れています。誰もが希望のフィルタを得るためにコードのどの部分を調整する必要があるか知っていますか?私は何かが明らかに欠けているように感じる。
while True:
try:
fileInput = input("What is the file path?: ")
openedInput = open(fileInput, 'r')
inputList = []
for line in openedInput:
inputList.append(line)
firstLine = inputList[0]
lastLine = inputList[-1]
print(firstLine)
print(lastLine)
if not re.match('.[0-9]+.[0-9]+\s.[0-9]+.[0-9]+\s[0-9]+.[0-9]+',firstLine) and re.match('.[0-9]+.[0-9]+\s.[0-9]+.[0-9]+\s[0-9]+.[0-9]+',lastLine):
print("The data file must be in XYZ format, please submit a usable file: ")
continue
break
except:
print("That file path was not valid, try again")
'^ [+ - ] [0-9] + \ [0-9] {3} \ S?[+ - ]?[0-9] + [0-9] {3} \ s [+ - ]?[0-9] + \。[0-9] {3} $ 'は、あなたがやっていることに対してより良い正規表現に見えます。 – Efferalgan
これはありがたいです – McLeodx
http://www.regular-expressions.info/dot.htmlの最後の2番目の段落を確認してください。「ドットを控えめに使用する」 – fabianegli