The two Swift UVOT grisms provide uv (170.0-500.0 nm) and visible (285.0-660.0 nm) spectra with a resolution of R~100 and 75. To reduce the grism data, UVOTPY extracts a spectrum given source sky position, and outputs a flux calibrated spectrum. UVOTPY is a replacement for the UVOTIMGRISM FTOOL (ascl:9912.002) in the HEADAS Swift package. Its extraction uses a curved aperture for the uv spectra, accounts the coincidence losses in the detector, provides more accurate anchor positions for the wavelength scale, and is valid for the whole detector.