Sut i Ddarllen ac Ysgrifennu o/i Ffeil

Wrth redeg arbrofion, fe all fod yn ddefnyddiol o ddarllen mewn paramedrau o ffeil, ac i all allforio cofnodion data i ffeil. Gallwch wneud hwn yn hawdd gyda Ciw. Fe all cynrychioli geiriaduron o baramedrau fel ffeiliau .yml, a gall allforio canlyniadau fel ffeiliau .csv.

Ffeiliau Paramedrau

Ystyriwch y rhwydwaith canlynol:

>>> import ciw
    >>> N = ciw.create_network(
    ...     arrival_distributions={'Class 0': [ciw.dists.Exponential(6.0), ciw.dists.Exponential(2.5)]},
    ...     service_distributions={'Class 0': [ciw.dists.Exponential(8.5), ciw.dists.Exponential(5.5)]},
    ...     routing={'Class 0': [[0.0, 0.2], [0.1, 0.0]]},
    ...     number_of_servers=[1, 1],
    ...     queue_capacities=[float('inf'), 4]
    ... )

Cynrychiolir hwn fel ffeil .yml isod:

parameters.yml

arrival_distributions:
  Class 0:
  - - Exponential
    - 6.0
  - - Exponential
    - 2.5
service_distributions:
  Class 0:
  - - Exponential
    - 8.5
  - - Exponential
    - 5.5
routing:
  Class 0:
  - - 0.0
    - 0.2
  - - 0.1
    - 0.0
number_of_servers:
- 1
- 1
queue_capacities:
- "Inf"
- 4

Gallwch droi hwn mewn i wrthrych Network yn defnyddio'r ffwythiant ciw.create_network_from_yml:

>>> import ciw 
>>> N = ciw.create_network_from_yml('<path_to_file>') 
>>> Q = ciw.Simulation(N) 

Allforio Canlyniadau

Unwaith bod efelychiad wedi'i rhedeg, gall ysgrifennu'r holl gofnodion data i ffeil gan ddefnyddio dull write_records_to_file y gwrthrych Simulation. Mae'r dull yma yn ysgrifennu'r holl ganlyniadau a gafwyd gan y dull get_all_records (gwelwch fan hyn am fwy o wybodaeth) i ffeil .csv, lle mae pob rhes yw arsylwad a pob colofn y newidyn:

>>> Q.write_records_to_file('<path_to_file>') 

Mae'r dull yma hefyd yn cymryd yr allweddair opsiynol header. Os osodwyd hwn i True yna bydd y rhes gyntaf yn cynnwys enwau'r newidynnau. Yr opsiwn diofyn yw True, gosodwch i False os nad oes angen y rhain:

>>> Q.write_records_to_file('<path_to_file>', headers=True) 
>>> Q.write_records_to_file('<path_to_file>', headers=False)