Paul McGuire, l'auteur de pyparsing, était kind enough to help a lot with a problem I'm trying to solve. Nous sommes au 1er but avec une verge pour marquer, mais je ne peux même pas le doubler à travers la ligne de but. Confucius a dit que s'il donnait à un étudiant 1/4 de la solution, et qu'il ne revenait pas avec les autres 3/4, alors il n'enseignerait plus à cet étudiant. Donc, c'est après presque une semaine de frustration et avec beaucoup d'anxiété que je demande cela ...python & pyparsing newb: comment ouvrir un fichier
Comment puis-je ouvrir un fichier d'entrée pour pyparsing et imprimer la sortie dans un autre fichier?
Voici ce que j'ai jusqu'à présent, mais il est vraiment tout son travail
from pyparsing import *
datafile = open('test.txt')
# Backaus Nuer Form
num = Word(nums)
accessionDate = Combine(num + "/" + num + "/" + num)("accDate")
accessionNumber = Combine("S" + num + "-" + num)("accNum")
patMedicalRecordNum = Combine(num + "/" + num + "-" + num + "-" + num)("patientNum")
gleason = Group("GLEASON" + Optional("SCORE:") + num("left") + "+" + num("right") + "=" + num("total"))
patientData = Group(accessionDate + accessionNumber + patMedicalRecordNum)
partMatch = patientData("patientData") | gleason("gleason")
lastPatientData = None
# PARSE ACTIONS
def patientRecord(datafile):
for match in partMatch.searchString(datafile):
if match.patientData:
lastPatientData = match
elif match.gleason:
if lastPatientData is None:
print "bad!"
continue
print "{0.accDate}: {0.accNum} {0.patientNum} Gleason({1.left}+{1.right}={1.total})".format(
lastPatientData.patientData, match.gleason
)
patientData.setParseAction(lastPatientData)
# MAIN PROGRAM
if __name__=="__main__":
patientRecord()
http://docs.python.org/tutorial/inputoutput.html#reading-and-writing-files – monkut