Ich möchte die print-Anweisungen meiner Ausgabe in eine Textdatei umleiten. Ich habe die sys importiert und unten versucht.Stdout in eine Textdatei in Python umleiten?
import pprint
import os
import math
import sys
class ExportLimits(object):
MMAP_ITER_TRIPS = 'manpower_mappings.map_iterator_trips'
def __init__(self, workset, crew_type, bid_period, divisor_files=None):
log_file = "/opt/test/test_user/data/ESR_DATA/etab/slogfile.txt"
sys.stdout = open(log_file, 'w')
self.workset = workset
self.crew_type = crew_type
self.bid_period = bid_period
self.tm = workset.getTM()
self.crew_bid_period = self.crew_type + "+" + self.bid_period
self.bid_period = self.tm.table('qf_user_bid_period')[(self.crew_bid_period)]
self.period = Period(self.bid_period.bpstart, self.bid_period.bpend)
self.filter_matcher = self._get_filter_matcher()
self.iterator_trips = rave_api.eval(\
ExportLimits.MMAP_ITER_TRIPS)[0]
self.divisor_reader_lh = divisor_reader_lh.DivisorReader(\
divisor_files=divisor_files)
self.divisor_reader_sh = divisor_reader_sh.DivisorReader(\
divisor_files=divisor_files)
self.pp_start = self.period.getStart()
self.pp_end = self.period.getEnd()
def export_limits(self, item_type):
if item_type == 'DKSH':
self._mandays_limits(SLKHH_GROUPS)
else:
self._mandays_limits(LAJSDLH_GROUPS)
def _mandays_limits(self, groups):
crews = [self.tm.table('crew')[('99172447',)],
self.tm.table('crew')[('7654678',)]]
generator = ((crew, self.filter_matcher.getFilterNamePeriodsMap(crew.id))
for crew in self.tm.table('crew'))
minres = defaultdict(lambda :RelTime(0))
maxres = defaultdict(lambda :RelTime(0))
for crew, group_to_periods in generator:
print crew, group_to_periods
try:
crew_filter, period = group_to_periods.iteritems().next()
except StopIteration:
continue
if crew_filter not in groups:
continue
Es funktioniert teilweise für mich. Ich kann einige der Zeilen drucken, aber nicht vollständig. Hier finden Sie die untenstehende Ausgabe meiner Protokolldatei, in der nur weniger Zeilen gedruckt wurden, aber nicht die vollständigen Protokolle. Aus irgendeinem Grund wurde es nicht vollständig gedruckt. (Bitte beachten Sie die letzte Zeile der Protokolldatei, wobei es nur bis "alia" gedruckt.)
Log File:
Crew _id = "133245" id = "176543" empno = "8761890" sex = "M" birthday = "19681217" name = "MICHEAL" Vornamen = "LUCAS" maincat = "C" Vorzugsname = "ESWAR" Initialen = "LL" joindate = "20010910 00:00" comjoindate = "20010910 00 : 00" _void = "title, logname, Si, bcity, bState, bcountry, alias, comenddate" { 'X-SYD-BB-AUSLLH': [26JUN2017 00: 00-21AUG2017 00.00]}
Besatzung _id = "214141" id = "132451" em pno = "145432" sex = "M" birthday = "19630904" name = "ESWARF" vorname = "FJDJSK" maincat = "C" Vorzugsname = "ESWADF" Initialen = "WL" joindate = "20010910 00:00" comjoindate = "20010910 00:00" _void = "title, logname, si, bcity, bState, bcountry, alia
~
~
Bitte überprüfen und beraten.
Überprüfen Sie das Python-Logging-Modul! https://docs.python.org/3/library/logging.html – caffreyd
Haben Sie versucht, das Pufferungsargument in 'open' zu berühren? https://docs.python.org/3/library/functions.html#open – grovina
@grovina: Ich habe das Pufferungsargument nicht versucht. Ich kann es versuchen und dich eine Weile wissen lassen. – rawse