Screen Capturer allows you to instantly capture any area of the screen to a file or email.
Trusted Windows (PC) download Screen Capturer 1.0.4.42. Virus-free and 100% clean download. Get Screen Capturer alternative downloads. Stoik Capturer screen capture program is a simple instrument, created for professional and amateur users. It has user-friendly interface to deal with it. Stoik Capturer video software is an all-in-one screen captureprogram that lets you take screenshots fast. Capture streaming video to AVI or WMV with selected codec or profile.
Simply press the PrtScrn key on your keyboard to see the dialog below and select the desired capture option.
Totally free product - no spam, no ads, no strings attached.
Features:
- Capture screenshots
- Capture animations (screencasts)
- Capture full screen
- Capture active or selected window
- Capture selected area of the screen
- Capture screenshots to clipboard, image file, e-mail or printer
- Screenshot image files can be saved in such popular formats as .png, .gif, .jpg, .bmp and .tiff.
- Capture screencast animations to highly compressed video files (WMV), with an option to instantly attach them to e-mail
- Capture screencast animations with sound
- Support for multiple monitors
Released:
Easily capture stdout/stderr of the current process and subprocesses
Capturer 1 0 5 0
Project description
The capturer package makes it easy to capture the stdout and stderr streamsof the current process and subprocesses. Output can be relayed to theterminal in real time but is also available to the Python program foradditional processing. It’s currently tested on cPython 2.7, 3.5+ and PyPy(2.7). It’s tested on Linux and Mac OS X and may work on other unixes butdefinitely won’t work on Windows (due to the use of the platform dependent ptymodule). For usage instructions please refer to the documentation.
- Design choices
Status
The capturer package was developed as a proof of concept over the course of aweekend, because I was curious to see if it could be done (reliably). After aweekend of extensive testing it seems to work fairly well so I’m publishing theinitial release as version 1.0, however I still consider this a proof ofconcept because I don’t have extensive “production” experience using it yet.Here’s hoping it works as well in practice as it did during my testing :-).
Installation
The capturer package is available on PyPI which means installation should beas simple as:
There’s actually a multitude of ways to install Python packages (e.g. the peruser site-packages directory, virtual environments or just installingsystem wide) and I have no intention of getting into that discussion here, soif this intimidates you then read up on your options before returning to theseinstructions ;-).
Getting started
The easiest way to capture output is to use a context manager:
The use of a context manager (the with statement) ensures that outputcapturing is enabled and disabled at the appropriate time, regardless ofwhether exceptions interrupt the normal flow of processing.
Note that the first call to get_bytes(), get_lines() or get_text()will stop the capturing of output by default. This is intended as a sanedefault to prevent partial reads (which can be confusing as hell when you don’thave experience with them). So we could have simply used print to showthe results without causing a recursive “captured output is printed and thencaptured again” loop. There’s an optional partial=True keyword argumentthat can be used to disable this behavior (please refer to the documentationfor details).
Design choices
There are existing solutions out there to capture the stdout and stderrstreams of (Python) processes. The capturer package was created for a veryspecific use case that wasn’t catered for by existing solutions (that I couldfind). This section documents the design choices that guided the development ofthe capturer package:
Intercepts writes to low level file descriptors
Libraries like capture and iocapture change Python’s sys.stdout andsys.stderr file objects to fake file objects (using StringIO). This enablescapturing of (most) output written to the stdout and stderr streams from thesame Python process, however any output from subprocesses is unaffected by theredirection and not captured.
The capturer package instead intercepts writes to low level file descriptors(similar to and inspired by how pytest does it). This enables capturing ofoutput written to the standard output and error streams from the same Pythonprocess as well as any subprocesses.
Uses a pseudo terminal to emulate a real terminal
The capturer package uses a pseudo terminal created using pty.openpty() tocapture output. This means subprocesses will use ANSI escape sequences becausethey think they’re connected to a terminal. In the current implementation youcan’t opt out of this, but feel free to submit a feature request to change this:-). This does have some drawbacks:
- The use of pty.openpty() means you need to be running in a UNIX likeenvironment for capturer to work (Windows definitely isn’t supported).
- All output captured is relayed on the stderr stream by default, so capturingchanges the semantics of your programs. How much this matters obviouslydepends on your use case. For the use cases that triggered me to createcapturer it doesn’t matter, which explains why this is the default mode.There is experimental support for capturing stdout and stderr separatelyand relaying captured output to the appropriate original stream. Basicallyyou call CaptureOutput(merged=False) and then you use the stdout andstderr attributes of the CaptureOutput object to get at the outputcaptured on each stream.I say experimental because this method of capturing can unintentionallychange the order in which captured output is emitted, in order to avoidinterleaving output emitted on the stdout and stderr streams (which wouldmost likely result in incomprehensible output). Basically output is relayedon each stream separately after each line break. This means interactiveprompts that block on reading from standard input without emitting a linebreak won’t show up (until it’s too late ;-).
Relays output to the terminal in real time
The main use case of capturer is to capture all output of a snippet of Pythoncode (including any output by subprocesses) but also relay the output to theterminal in real time. This has a couple of useful properties:
- Long running operations can provide the operator with real time feedback byemitting output on the terminal. This sounds obvious (and it is!) but it isnon-trivial to implement (an understatement :-) when you also want tocapture the output.
- Programs like gpg and ssh that use interactive password prompts will rendertheir password prompt on the terminal in real time. This avoids the awkwardinteraction where a password prompt is silenced but the program still hangs,waiting for input on stdin.
Contact
The latest version of capturer is available on PyPI and GitHub. Thedocumentation is hosted on Read the Docs and includes a changelog. For bugreports please create an issue on GitHub. If you have questions, suggestions,etc. feel free to send me an e-mail at peter@peterodding.com.
License
This software is licensed under the MIT license.
© 2020 Peter Odding.
A big thanks goes out to the pytest developers because pytest’s mechanism forcapturing the output of subprocesses provided inspiration for the capturerpackage. No code was copied, but both projects are MIT licensed anyway, so it’snot like it’s very relevant :-).
Release historyRelease notifications | RSS feed
3.0
2.4
2.3
2.2
2.1.1
2.1
2.0
1.1
1.0
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size capturer-3.0-py2.py3-none-any.whl (15.5 kB) | File type Wheel | Python version py2.py3 | Upload date | Hashes |
Filename, size capturer-3.0.tar.gz (18.1 kB) | File type Source | Python version None | Upload date | Hashes |
Hashes for capturer-3.0-py2.py3-none-any.whl
Algorithm | Hash digest |
---|---|
SHA256 | b1ef6e8831cd170906df7c881a36c8b8a1b0b824b147b950a1a8c11776da981b |
MD5 | 41a0439e4c25fab6a5ee4a733bd61f1d |
BLAKE2-256 | 6398c0959507a5b99c2813ee1da7ce9b8dfe9b05d8ab0d6c20e54d8b0f0bde18 |
Capturer 1 0 5 Sezonas
CloseHashes for capturer-3.0.tar.gz
Capturer 1 0 56
Algorithm | Hash digest |
---|---|
SHA256 | 4849032f6a670c02be434c484a0abf43c870a1efafafbfffd2e6f1c1f7ef5001 |
MD5 | 54e1b1540788b28a92e8a1815d054754 |
BLAKE2-256 | 9a98e2cac95d1cba553b10552511fdb55043b00a99bf8c1ed913ecbc654d6bfb |