2017-08-23 9 views
1

私は、指定したフォルダを選択し、そこにすべてのファイルとディレクトリをリストする必要があるPyQT5アプリケーションをやっています。パスを取得するためにPythonのディレクトリからn個のファイルを読み込む方法は?

は、私がどのように見えるの簡単な方法で使用します。

def open_path(): 
    dialog = QFileDialog() 
    folder_path = dialog.getExistingDirectory(None, "Select Folder") 
    return folder_path 

EDIT

をこれは私が根、dirsに、そしてファイル

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] 

を取得する方法です私は約11000のファイルを含むフォルダがあります。 QFileDialogを使用してフォルダを取得し、3つのリスト(ルート、ディレクトリ、ファイル)に分割し、QDirを使用して表示します。理由は、そのサイズの

、私は1000

これが行うことが可能ですし、どのように達した後、よりロードすることが可能で、1000個のファイルのみ最初QDirの表示を制限したいですか?

この種のフィルタの実装方法に関するドキュメントや例は見つかりませんでした。

私はこの情報をウェブ上のあらゆる場所で検索していましたが、この解決策を見つけました - >How to read first n-th files from directory (pleaso NOT a "head -n solution")? これにはbashスクリプトが含まれていますか?

できるだけPopenとPIPEを使用しないでください。

何か助けやヒントは大歓迎です。

ありがとうございます。ここで

+1

これは意味をなさない: 'getExistingDirectory'関数はファイルではなく*ディレクトリ*のみを表示します。 'os.walkpath'コードは' QFileDialog'にファイルを表示することと何が関係していますか? – ekhumoro

+0

@ekhumoro申し訳ありません。それはタイプミスでした。私は質問を更新しました。基本的には、QFileDialogを使用してパスを取得し、そのパスを3つのリストに分割し、QDirを使用してファイルのみを表示したいとします。 – mutantkeyboard

+1

それはまだ意味をなさない:あなたは 'QDir'に何も表示することはできません。物事を説明しようとするのではなく、問題を実証している実際の作業コードを投稿してください。 11000個のアイテムは、Qtのビュークラスの1つに表示するのに特に大きな数字ではありません。 – ekhumoro

答えて

0
parent_list = os.listdir("Here goes the path for directory") 
    count =0 
    for child in parent_list: 
    if count < 1000: 
     print(child) 
    else 
     break 
    count = count+1 

parent_listは、指定されたディレクトリ内のすべてのファイルが含まれている、とあなたはループを使用して、リスト内の最初の1000個のファイルにアクセスすることができます。子はディレクトリ内のファイルです

関連する問題