title: Python fails to create file when the file being written isn't already there
body: <p>For the better part of 3 months I've been slowly adding stuff in an attempt to make the system output a file to save that is human readable. I could save this all under one file but this was originally course work and has now just become so random piece of Franken-Code. So I have the program take the users family name and date of arrival and use that as the file name. So naturally the program will be writing to a file that doesn't yet exist and if it does it should add another entry as to insure bookings aren't. All I have found is people saying one of 2 things, either that it "w" or "a" should create the file or that a "+" is needed after the selection of opening type like so "a+" or "w+". I think the earlier is more likely as I think "w+" is read/write but not to sure and many different sources say different things.</p>
  
  <pre><code>#Comment Format
  #
  #Code
  #
  #Comment about above Code
  from random import*
  c_single = 47
  c_double = 90
  c_family = 250
  discount = 10
  VAT = 20
  max_stay = 14
  min_stay = 1
  room_list = []
  min_rooms = 1
  max_rooms = 4
  cost = 0
  
  #Sets all need variables that would need to be changed if the physical business changes (e.g. Increase in number of rooms, Longer Max stay allowed, Change to Pricing)
  
  print("Cost of room:")
  print("Single - £", c_single)
  print("Double - £", c_double)
  print("Family - £", c_family)
  
  #Prints prices based on above variables
  
  name = input("What is the family name --&gt; ")
  arrival = input("Please enter date of arrival in the form dd/mm/yy --&gt; ")
  
  while len(arrival) != 8:
      arrival = input("Please re-enter, in the case of the month or day not being 2 digits long insert a 0 before to insure the form dd/mm/yy is followed --&gt; ")
  #Gets the guests name and date of arrival for latter update into the business' preferred method of storage for bookings
  
  nights = int(input("How many nights do you intend to stay in weeks --&gt; "))
  while nights &gt; max_stay or nights &lt; min_stay:
      nights = int(input("That is too short or long, please re-enter stay in weeks --&gt;"))
  if nights &gt;=  3:
      discount_applic = 1
  
  #Gets the guests ideal number of weeks stay, ensure that this would be possible then adds the discount if applicable
  rooms = int(input("Please enter number of rooms required --&gt; "))
  while rooms &lt; min_rooms or rooms &gt; max_rooms:
      rooms = int(input("That number of rooms is unachievable in one purchase, please re-enter the number of rooms you require --&gt; "))
  
  #Gets number of rooms desired and checks that it does not exceed the maximum allowed by the business or the minimum (currently 1, staying no nights doesn't work)
  
  for room in range (rooms):
      current_room = input("Please enter the room desired--&gt; ")
      current_room = current_room.upper()
      if current_room == "SINGLE":
          cost += c_single
      elif current_room == "DOUBLE":
          cost += c_double
      elif current_room == "FAMILY":
          cost += c_family
  
      #Checks which room is desired
  
      else:
          while current_room != "SINGLE" and current_room != "DOUBLE" and current_room != "FAMILY":
              current_room = input("Invalid room type, vaild entries are : single, double or family --&gt; ")
              current_room = current_room.upper()
  
  #Ensures that the desired room is valid, if first inserted not correctly, repeats until valid entry is entered
  
  room_list.append (current_room)
  
  #Adds the wanted room type to the array room_list
  
  cost = cost * nights
  #calculates cost
  booking = randrange(1000,9999)
  
  print("Name: ", name)
  print("You have booked from ", arrival)
  print("You have booked stay for ", nights, "weeks")
  print("You have booked", rooms, " room/s of these categories;")
  print(str(room_list))
  print("This will cost £", cost)
  print("Booking referral: ", booking)
  
  #Prints booking information
  dateStr = str(arrival)
  storageFileName = str(dateStr + name + ".txt")
  storageFile = open(storageFileName, "w")
  storageFile.write("Name: ", name)
  storageFile.write("They have booked from ", arrival)
  storageFile.write("They have booked stay for ", nights, "weeks")
  storageFile.write("They have booked", rooms, " room/s of these categories;")
  storageFile.write(str(room_list))
  storageFile.write("This has cost them -- &gt;£", cost)
  storageFile.write("Booking referral: ", booking)
  #saves the storage data to a server under the name and data.
  </code></pre>
  
  <p>The error:</p>
  
  <blockquote>
    <p>Traceback (most recent call last):<br>
    File "H:\Computing\S4\Programs\Suite.py", line 89,<br>
    in  storageFile = open(storageFileName, "w+")<br>
    FileNotFoundError: [Errno 2] No such file or directory: '15/10/17Daivdson.txt`'</p>
  </blockquote>