リストのすべての行について、 "\ t"で区切られた3つのコンポーネントに分割しようとしていますが、このコードは "t"で分割されていません。代わりに、行全体を手紙で分割しています。文字列を " t"で分割しない関数
# Function to load a set of sequences from a given file
# File should be stored as a sequence per line
# Input: File name containing sequences
# Output: List of all sequences in that file
def LoadSeq(FileName):
FileIn = open(FileName, "r")
SeqList = []
for Line in FileIn:
Line = Line.rstrip()
SeqList.append(Line)
FileIn.close()
return SeqList
def LineToList(Str):
Str = Str.rsplit()
return Str.split("\t")
import math
def CalculateDistance(Lat1, Lon1, Lat2, Lon2):
Lat1 = float(Lat1)
Lon1 = float(Lon1)
Lat2 = float(Lat2)
Lon2 = float(Lon2)
nDLat = (Lat1 - Lat2) * 0.017453293
nDLon = (Lon1 - Lon2) * 0.017453293
Lat1 = Lat1 * 0.017453293
Lat2 = Lat2 * 0.017453293
nA = (math.sin(nDLat/2) ** 2) + math.cos(Lat1) * math.cos(Lat2) * (math.sin(nDLon/2) ** 2)
nC = 2 * math.atan2(math.sqrt(nA),math.sqrt(1 - nA))
nD = 6372.797 * nC
return nD
def LocationCount(FileName, DesiredDistance, DesiredLat, DesiredLong):
for Line in LoadSeq(FileName):
LineToList(Line)
Counter = 0
CalculateDistance(Seq[1], Seq[2], DesiredLat, DesiredLong)
if CalculateDistance <= DesiredDistance:
Counter += 1
return Counter
NumberInDistance = LocationCount("Mammal.txt", 20, 50.261667, -5.043333)
print(NumberInDistance)
これは私が使用していたコードですが、私はそれを正しく分割していませんか、それとももっと混乱していますか?私はPythonを使用する必要があり、可能な場合はこれと同様のforrmattingにしておく必要があります。
サンプル入力ファイルでお手伝いできますか?そして、現在の出力はどのように見えますか? –
サンプル文書をアップロードする方法を完全にはわかっていません – NKing