小编mut*_*ard的帖子

如何在Python中从目录中读取n个文件?

我正在做一个 PyQT5 应用程序,需要选择给定的文件夹,并列出其中的所有文件和目录。

为了获取路径,我使用简单的方法,如下所示:

def open_path():
    dialog = QFileDialog()
    folder_path = dialog.getExistingDirectory(None, "Select Folder")
    return folder_path
Run Code Online (Sandbox Code Playgroud)

编辑

这就是我获取根、目录和文件的方式

import os

# this is where I have my open_path() method defined, so I don't write it again

path = str(open_path())
roots = next(os.walkpath(path))[0]
dirs = next(os.walkpath(path))[1]
files = next(os.walkpath(path))[2]
Run Code Online (Sandbox Code Playgroud)

我有一个包含大约 11000 个文件的文件夹。我使用 QFileDialog 来获取文件夹,并将其拆分为 3 个列表(根、目录、文件),然后使用 QDir 来显示它。

由于其大小,我想限制 QDir 仅显示前 1000 个文件,在达到 1000 个后可以加载更多文件。

这可以做到吗?如何做到?

我找不到任何有关如何实现这种过滤器的文档或示例。

我在网络上到处搜索此信息,但只找到了这个解决方案 - >如何从目录中读取前 n 个文件(请不是“head -n 解决方案”)? 其中涉及bash脚本?

如果可能的话,我想避免使用 Popen 和 PIPE。

欢迎任何帮助或提示。 …

directory bash python-3.x pyqt5

6
推荐指数
1
解决办法
6973
查看次数

Ruby 相当于 Python 的字典理解

我正在将 Python 项目重写为 Ruby。

这是一个纯 Ruby 项目,因此没有附加任何框架,例如 Rails。

项目到处都有大量的字典理解。

例如:

original = {'one': 1, 'two': 2, 'three': 3}

squares = {name:value**2 for (name,value) in original.items()}
print(squares)

Run Code Online (Sandbox Code Playgroud)

我在 Ruby 中得到的最接近的东西是:

original = { one: 1, two: 2, three: 3 }

squares = original.inject ({}) do | squared, (name,value) | 
  squared[name] = value ** 2;
  squared
end 
puts squares

Run Code Online (Sandbox Code Playgroud)

这显然是可行的,但我想知道是否有更方便或更易读的方法来用 Ruby 编写它。

ruby

4
推荐指数
1
解决办法
872
查看次数

Flutter无法仅正确连接Rails API

好吧,伙计们,这是我的问题。

我有一个仅标准 Rails 5 API 设置。

我的用户控制器几乎是标准的:

# frozen_string_literal: true

class UsersController < ApplicationController
  before_action :set_user, only: %i[show update destroy]

  # GET /users
  def index
    @users = User.all

    render json: @users
  end

  # GET /users/1
  def show
    render json: @user
  end

  # POST /users
  def create
    @user = User.new(user_params)


    if @user.save
      render json: @user, status: :created, location: @user
      UserNotifierMailer.send_signup_email(@user).deliver      
    else
      render json: @user.errors, status: :unprocessable_entity
    end
  end

  # PATCH/PUT /users/1
  def update
    if @user.update(user_params)
      render json: @user
    else
      render json: …
Run Code Online (Sandbox Code Playgroud)

json ruby-on-rails dart flutter ruby-on-rails-5.2

3
推荐指数
1
解决办法
1385
查看次数

Angular 5 属性指令不适用于鼠标事件

我对属性指令有疑问。我已经按照教程进行操作了。

指令是使用 CLI 生成的,因此我使用了ng g directive <directivename>,并且特意与 一起放在顶层app.module.ts

我的app.module.ts看起来像这样(由于模块的专有名称,我必须省略所有导入):

// Directives
import { EventhoverDirective } from './eventhover.directive';

@NgModule({
  declarations: [
    // all the relevant component inputs are here
    EventhoverDirective
  ],
  imports: [
   // modules are here
  ],
  providers: [
    // providers are here
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

指令本身看起来像:

import { Directive, HostListener, OnInit, Renderer2, ElementRef } from '@angular/core';

@Directive({
  selector: '[appEventhover]'
})
export class EventhoverDirective implements OnInit …
Run Code Online (Sandbox Code Playgroud)

attributes directive angular angular5

2
推荐指数
1
解决办法
4439
查看次数

每次停止点击时,Java点击计数器都会重置

我想在Java中创建一个非常简单的点击计数器.它有效,但每当我停止点击Click Me按钮时,点击次数就会重置.我尝试使用名为clicks的静态变量来解决这个问题.我知道这可能听起来像一个愚蠢的问题,但你如何防止变量重置自己.

这是我写的代码.

    package clickcounter;

import java.awt.BorderLayout;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;


public class ClickCounter extends JFrame implements MouseListener{
    private JButton b1 = new JButton("Click me");
    private static int clicks;
    private JLabel info = new JLabel();

    public ClickCounter()
    {
        super("Click counter");
        setSize(250, 150);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        b1.addMouseListener(this);
        BorderLayout bor = new BorderLayout();
        setLayout(bor);
        info.setEnabled(false);
        add(BorderLayout.NORTH, b1);
        add(BorderLayout.CENTER, info);
        setVisible(true);
    }


    public static void main(String[] args) {
        ClickCounter cc = new ClickCounter();
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

java swing mouseevent jbutton click-counting

1
推荐指数
1
解决办法
2060
查看次数

如何通过传递参数在JavaScript中设置计时器

我正在尝试使用HTML输入框设置超时,并将其用作参数setTimeout.

这是一个非常简单的任务,但我不是JS开发人员,因此我不确定如何将参数正确传递给箭头函数.

HTML代码仅包含2个元素.

<button id="myElementId">Click me</button>
<input id="milliseconds" type="number" placeholder="number of milliseconds"/>
Run Code Online (Sandbox Code Playgroud)

我的JS代码看起来像:

const clickbutton = document.getElementById('myElementId');
const millis = parseInt(document.getElementById('milliseconds').value, 10);

clickbutton.addEventListener('click', (event) => {
    setTimeout(() => { alert("I work");
  }, millis); // <-- here I don't want to use a static value 
});
Run Code Online (Sandbox Code Playgroud)

但是好像我无法millis从箭头函数中的外部范围获取值.

我也试过传递第二个参数:

const clickbutton = document.getElementById('myElementId');
const millis = parseInt(document.getElementById('milliseconds').value, 10);

clickbutton.addEventListener('click', (event, millis) => {
    setTimeout(() => { alert("I work");
  }, millis); 
});
Run Code Online (Sandbox Code Playgroud)

那里没有运气.

任何帮助表示赞赏.

谢谢.

javascript settimeout ecmascript-6 arrow-functions

1
推荐指数
1
解决办法
56
查看次数