Skip to content

Instantly share code, notes, and snippets.

@keithweaver
Created March 10, 2017 03:42
Show Gist options
  • Save keithweaver/562d3caa8650eefe7f84fa074e9ca949 to your computer and use it in GitHub Desktop.
Save keithweaver/562d3caa8650eefe7f84fa074e9ca949 to your computer and use it in GitHub Desktop.
Create a folder with Python
import os
def createFolder(directory):
try:
if not os.path.exists(directory):
os.makedirs(directory)
except OSError:
print ('Error: Creating directory. ' + directory)
# Example
createFolder('./data/')
# Creates a folder in the current directory called data
@EmoryMullis
Copy link

EmoryMullis commented Sep 16, 2018

hjoon0510 I am working on learning Python myself but as to selecting the NAME. I import the "socket", then set a variable to hostname = socket.gethostname(). I can then call that variable to name my file or directory. Again I am trying to learn also so there may be a better way to do it but here is the code I am playing with to learn.
import wmi
import datetime
import sys
import os
import platform
import getpass
import socket
import ifaddr
from psutil import virtual_memory

ps = platform.system()
pr = platform.release()
build = platform.version()
cdir = os.getcwd()
mem = virtual_memory()
username = getpass.getuser()
hostname = socket.gethostname()
adapters = ifaddr.get_adapters()
mType = platform.machine()
pType = platform.processor()
currentDT = datetime.datetime.now()

def createFolder(directory):
try:
if not os.path.exists(hostname):
os.makedirs(hostname)
except OSError:
return ('Error: Creating directory. ' + hostname)

createFolder('./hostname/')

sys.stdout = open("%s %s" % (hostname, (currentDT.strftime("%m%d%Y %H%M%S"))) + ".txt", "w+")

HDs = wmi.WMI()
for hdSerialnum in HDs.Win32_PhysicalMedia():
print(hdSerialnum.Tag.strip("\.\PHYSICAL"), hdSerialnum.SerialNumber)
print('')

print("Installed OS: " + ps + '\n' + "OS Version: " + pr + '\n' + "OS Build: " + build + '\n' +
"Current Dir: " + cdir + '\n' + "Machine Type: " + mType + '\n' + "Processor: " +
pType + '\n' + "RAM Total: " + str(mem.total) + '\n' + "Current User Name: "
+ username + '\n' + "Computer Name: " + hostname + '\n')

for adapter in adapters:
print(adapter.nice_name)
for ip in adapter.ips:
print(" %s/%s" % (ip.ip, ip.network_prefix))

sys.stdout.close()

@niceinjeolmi
Copy link

thank you so much!

@figmulberry
Copy link

This is wonderful!

@rohit1607
Copy link

Thanks alot!

@DongaEG
Copy link

DongaEG commented Sep 1, 2019

thank u

@Matin-B
Copy link

Matin-B commented Sep 20, 2019

Thanks

@GwenVCX
Copy link

GwenVCX commented Sep 30, 2019

Thank you! :)

@chichur
Copy link

chichur commented Oct 25, 2019

Thank BRO!!!

@sankarsarika74
Copy link

you can change your directory by os.chdir

@KasperRagnar
Copy link

Thank you

@DATTUSAM
Copy link

Thank you very much..... keithweaver

if anybody facing issue while creating the folder, followed with an error message like this
def createFolder(D:\Sampath\web_scrapper\temp):
^
SyntaxError: unexpected character after line continuation character

please just duplicate with a backslash for the directory you want to create. Here I want to create a Temp folder in web_scrapper folder
createFolder('D:\Sampath\PAMM_web_scrapper/temp/')

@eric-hedengren
Copy link

eric-hedengren commented Jul 9, 2020

Isn't this all already done by

import os
os.mkdirs(directory, exist_ok = True)

?

exist ok = True checks for existence and makes dir created if not existing

OSErrors from the os package will do the error messaging ...

You're right @gwangjinkim. Just switch mkdirs to makedirs and it's good to go.

import os
os.makedirs(directory, exist_ok = True)

@gwangjinkim
Copy link

@EricHedengren thanks! True! I always have to look this up anew.

@khu17jain
Copy link

if i would like to create two folders in single directory how to do that

@eric-hedengren
Copy link

@khu17jain Write two makedirs statements to the same location. For loop it if you have a lot.

@tzuhungbrian
Copy link

best code I have ever found, thx!

@JeremyMeissner
Copy link

Thank you!

@Hemantphareesh
Copy link

how to create a folder with name in format yyyy-mm-dd from any year to today

@DanialBahrizadeh
Copy link

thank you man ``

@SaberKazemii
Copy link

Great! Thanks so much!

@lucasgcruz
Copy link

Thank you, very useful and helped me understand the command.

@sourcecodemage
Copy link

NIce! Thanks for posting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment