2016-08-25 7 views
0

私はループでスクリーンショットを撮るために実行されるpythonスクリプトを持っていて、それらのすべての画像を保存します。現在のところ、すべての画像はPython35フォルダに保存されています。Python - ユーザー名を入力してフォルダを作成するにはどうすればいいですか?

したがって、ユーザーはフォルダの名前を入力し、この名前でフォルダを作成する必要があります。

私はmakedirs関数を使用し、パスをnewpath=r'C:/users/../'で指定することがわかります。

しかし、ユーザーが指定した新しいフォルダ名をパスに追加する方法はありますか?

(EDIT)ここにあるコード私が持っている: -

import openpyxl 
import re 
import os 
import time 
from PIL import ImageGrab 
import webbrowser 

source_excel=input('Enter the source excel file name-> ') 
wb=openpyxl.load_workbook(source_excel) 
sheet=wb.active 


strt=int(input('Enter starting range-> ')) 
end=int(input('Enter ending range-> ')) 

#NEED THE CHANGE HERE 

foldname=input("Enter a folder name to create where images will be saved") 
newpath=r'C:\Users\rnair\AppData\Local\Programs\Python\Python35\'demofile 


# Loop to get the link from excel and take the screenshot by opening the browser for each link 

for q in range(strt,end): 
    getme=q,sheet.cell(row=q,column=1).value  #get link from excel file  
    ab=getme[1] 
    #myopener=Myopen() 
    rowc=str(strt) 
    url=ab 
    webbrowser.open(url)       #opens browser for the link fetched 

    time.sleep(7)         # Delay to wait for the page to load completely 
    im=ImageGrab.grab() 
    os.chdir(newpath) 
    im.save("Row"+rowc+".jpg","JPEG")    # Saving image to file 
    strt=strt+1 
+2

https://docs.python.org/3/library/pathlib.htmlおよびhttps://docs.python.org/3/library/os.path.htmlをご覧ください。あなたの実際のコードと適切な問題の声明を見ることなく、もっと言い表すのは難しいです。 –

+0

@Ro_nair Pythonのバックスラッシュはそれに続く引用符をエスケープするので、Windowsのパスで作業している場合はダブルスラッシュ(エスケープされた単一のスラッシュに相当)を使用します。つまり、あなたのコードはそのままでは実行されません。なぜなら、newpathの代入におけるエスケープされた引用符は、終わりのない文字列を生成するからです。それだけでは十分ではありません。なぜなら、 'demofile'が定義されておらず、演算子によってあなたの文字列から分離されていないため、直後に構文エラーが発生するからです。 – kungphu

答えて

3

ファイルが保存されるべきパスを構築する意味場合は、第1、第2のベースディレクトリおよびカスタムディレクトリ名でos.path.joinを使用します(ファイル名は第3引数として提供することができます)。何かのユーザ入力を信頼することについては、特に、特にファイルシステムの操作については非常に注意してください。

+0

@ Ro_nairあなたの元の投稿に対する私のコメントで述べた問題の他に、最終パスを構築するための使い方は 'os.path.join(basedir、foldname)'のようになります。 – kungphu

+0

すばらしい説明をありがとう!私はすべてを理解し、あなたが言ったようにそれは働いた! –

+0

ようこそ。私はあなたのために働いてうれしいです。 :) – kungphu

関連する問題