私はこれを一緒に無駄にする方法のために高低を探しています。私は私のpythonでかなり錆びついていますが、(私が考えるもの)シンプルなプログラムを書こうとしていて、私はほとんど禿げています。 このプログラムの目標は、誰かがパートナンバーを入力(「ABC」)し、ディレクトリに名前に一致するフォルダを検索し、そのフォルダ内のすべてのファイルを開くことです。これは一般的には.pdfであり、おそらく2-3はExcelファイルです。私は、ファイルパス全体を貼り付けた状態でopen()を使ってテストしながらこの作業を行うことができましたが、ユーザの入力に基づいています。下のコードを実行すると、正しいディレクトリにファイルがあることがわかります(テスト用にABC.txtという名前のファイルを作成しましたが、ファイル名に.txt拡張子が追加されているため、ファイルを開けませんでした)。Python 2.7ユーザー入力に基づいてディレクトリを検索し、フォルダ内のすべてのファイルを開きます。
import os
import os.path
partno =""
partno = raw_input("Enter Part No:") #input from user to search dir
yourpath = r'C:\Python27'
#All folders to be searched stem from one parent dir
print ("Loading Part No %r files...Please wait") % partno
for dname, _, fnames in os.walk(r'C:\Python27'):
for fname in fnames:
if partno in fname:
filepath = (os.path.abspath(os.path.join(dname, fname)))
open (filepath,"r")
print filepath
ここに出力がありますが、ファイルは開かれません。
Enter Part No:ABC
Loading Part No 'ABC' files...Please wait
C:\Python27\Paperless Test\ABC\ABC.txt.txt
編集:私は、リモートデスクトップを使用して、私が切断した後、これを更新するのを忘れていますので、私は私のPCから離れています不足している行のために申し訳ありません。
今日、コードが更新され、終了しました。主要な問題ではなく、かなり簡単に解決されるはずの1つの小さな問題を完全に除いて完全に動作します。
ここに私の実際のディレクトリの更新コードがあります。すべての助けを借りてくれてありがとう!
import os
partno =""
partno = raw_input("Enter Part No:") #Takes user input of Part No
yourpath = r"Y:\SHOP\MANUFACTURING DOCS" #Parent directory
print ("Loading Part No %r files...Please wait") % partno
for root, dirs, files in os.walk(yourpath, topdown=True):
for name in dirs:
if name == partno: #Matches folder in directory to `part no`
path_to_files = (os.path.abspath(os.path.join(root, name)))
#Stores path in variable so files are only found in this folder
print path_to_files #Confirmation line for me
for dname, _, fnames in os.walk(path_to_files, topdown=True):
for fname in fnames:
if fname.startswith(partno):
filepath = (os.path.abspath(os.path.join(dname, fname)))
os.startfile(filepath) #Opens all files in folder in their
native applications
print filepath
raise SystemExit
注:私はこれを実行すると、それが発見し、非常に高速なディレクトリを出力しますが、それはプログラムの後半を実行するとき、それはファイルを検索、印刷、および開くために5〜10秒かかります。これにはコード化された方法と関係がありますか?