私はループでスクリーンショットを撮るために実行される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
https://docs.python.org/3/library/pathlib.htmlおよびhttps://docs.python.org/3/library/os.path.htmlをご覧ください。あなたの実際のコードと適切な問題の声明を見ることなく、もっと言い表すのは難しいです。 –
@Ro_nair Pythonのバックスラッシュはそれに続く引用符をエスケープするので、Windowsのパスで作業している場合はダブルスラッシュ(エスケープされた単一のスラッシュに相当)を使用します。つまり、あなたのコードはそのままでは実行されません。なぜなら、newpathの代入におけるエスケープされた引用符は、終わりのない文字列を生成するからです。それだけでは十分ではありません。なぜなら、 'demofile'が定義されておらず、演算子によってあなたの文字列から分離されていないため、直後に構文エラーが発生するからです。 – kungphu