diff --git a/scripts/entity_gen.py b/scripts/entity_gen.py
index 057821b..b558a44 100755
--- a/scripts/entity_gen.py
+++ b/scripts/entity_gen.py
@@ -8,7 +8,7 @@
 
 
 def generate_cpp(entity_yaml, output_dir):
-    with open(os.path.join(script_dir, entity_yaml), 'r') as f:
+    with open(entity_yaml, 'r') as f:
         ifile = yaml.safe_load(f)
         if not isinstance(ifile, dict):
             ifile = {}
@@ -48,7 +48,7 @@
 
     args = parser.parse_args()
 
-    if (not (os.path.isfile(os.path.join(script_dir, args.entity_yaml)))):
+    if (not (os.path.isfile(args.entity_yaml))):
         sys.exit("Can not find input yaml file " + args.entity_yaml)
 
     function = valid_commands[args.command]
diff --git a/scripts/fru_gen.py b/scripts/fru_gen.py
index f6111b7..a8d148a 100755
--- a/scripts/fru_gen.py
+++ b/scripts/fru_gen.py
@@ -8,7 +8,7 @@
 
 
 def generate_cpp(inventory_yaml, output_dir):
-    with open(os.path.join(script_dir, inventory_yaml), 'r') as f:
+    with open(inventory_yaml, 'r') as f:
         ifile = yaml.safe_load(f)
         if not isinstance(ifile, dict):
             ifile = {}
@@ -48,7 +48,7 @@
 
     args = parser.parse_args()
 
-    if (not (os.path.isfile(os.path.join(script_dir, args.inventory_yaml)))):
+    if (not (os.path.isfile(args.inventory_yaml))):
         sys.exit("Can not find input yaml file " + args.inventory_yaml)
 
     function = valid_commands[args.command]
diff --git a/scripts/inventory-sensor.py b/scripts/inventory-sensor.py
index 77222f5..2dd1e8d 100755
--- a/scripts/inventory-sensor.py
+++ b/scripts/inventory-sensor.py
@@ -8,7 +8,7 @@
 
 
 def generate_cpp(sensor_yaml, output_dir):
-    with open(os.path.join(script_dir, sensor_yaml), 'r') as f:
+    with open(sensor_yaml, 'r') as f:
         ifile = yaml.safe_load(f)
         if not isinstance(ifile, dict):
             ifile = {}
@@ -48,7 +48,7 @@
 
     args = parser.parse_args()
 
-    if (not (os.path.isfile(os.path.join(script_dir, args.sensor_yaml)))):
+    if (not (os.path.isfile(args.sensor_yaml))):
         sys.exit("Can not find input yaml file " + args.sensor_yaml)
 
     function = valid_commands[args.command]
diff --git a/scripts/sensor_gen.py b/scripts/sensor_gen.py
index 822a00a..6f59021 100755
--- a/scripts/sensor_gen.py
+++ b/scripts/sensor_gen.py
@@ -8,7 +8,7 @@
 
 
 def generate_cpp(sensor_yaml, output_dir):
-    with open(os.path.join(script_dir, sensor_yaml), 'r') as f:
+    with open(sensor_yaml, 'r') as f:
         ifile = yaml.safe_load(f)
         if not isinstance(ifile, dict):
             ifile = {}
@@ -48,7 +48,7 @@
 
     args = parser.parse_args()
 
-    if (not (os.path.isfile(os.path.join(script_dir, args.sensor_yaml)))):
+    if (not (os.path.isfile(args.sensor_yaml))):
         sys.exit("Can not find input yaml file " + args.sensor_yaml)
 
     function = valid_commands[args.command]
