если вам разрешена библиотека панд, то
импортируйте панд как pd
df = pd.read_csv ("TipJoke.csv")
blockquote> [ 114] df - это объект данных pandas, в котором вы можете выполнить несколько задач фильтрации в соответствии с вашими потребностями.
Например, если вы хотите получить данные для Шутки, вы можете отфильтровать их следующим образом:
print(df[df["Card"] == "Joke"])
Хотя я просто указываю вам направление, а не всю логику для вашего вопроса.
API PrintWindow работает хорошо, я использую его для захвата миниатюр скрытых окон. Несмотря на название, оно отличается от WM_PRINT и WM_PRINTCLIENT, оно работает практически со всеми окнами, кроме окон Direct X / WPF.
Я добавил некоторый код (C #), но после просмотра того, как я использовал код, я понял, что окно на самом деле не скрыто, когда я фиксирую его растровое изображение, оно просто за пределами экрана, поэтому это может не сработать для вашего случая. Не могли бы вы показать окно за кадром, распечатать и снова спрятать его?
public static Bitmap PrintWindow(IntPtr hwnd)
{
RECT rc;
WinUserApi.GetWindowRect(hwnd, out rc);
Bitmap bmp = new Bitmap(rc.Width, rc.Height, PixelFormat.Format32bppArgb);
Graphics gfxBmp = Graphics.FromImage(bmp);
IntPtr hdcBitmap = gfxBmp.GetHdc();
bool succeeded = WinUserApi.PrintWindow(hwnd, hdcBitmap, 0);
gfxBmp.ReleaseHdc(hdcBitmap);
if (!succeeded)
{
gfxBmp.FillRectangle(new SolidBrush(Color.Gray), new Rectangle(Point.Empty, bmp.Size));
}
IntPtr hRgn = WinGdiApi.CreateRectRgn(0, 0, 0, 0);
WinUserApi.GetWindowRgn(hwnd, hRgn);
Region region = Region.FromHrgn(hRgn);
if (!region.IsEmpty(gfxBmp))
{
gfxBmp.ExcludeClip(region);
gfxBmp.Clear(Color.Transparent);
}
gfxBmp.Dispose();
return bmp;
}
Есть сообщения WM_PRINT
и WM_PRINTCLIENT
, которые можно отправлять в окно, что приводит к выводу его содержимого в HDC
по вашему выбору.
Однако, они не идеальны: хотя стандартные элементы управления Win32 обрабатывают их правильно, любые пользовательские элементы управления в приложении могут этого не делать.