diff --git a/.github/workflows/test-python.yml b/.github/workflows/test-python.yml
index 6dbd5a98..3bb2a944 100644
--- a/.github/workflows/test-python.yml
+++ b/.github/workflows/test-python.yml
@@ -271,3 +271,29 @@ jobs:
           }
           $pythonVersion
         shell: pwsh
+
+  setup-python-multiple-python-versions-from-file:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [ubuntu-latest, windows-latest, macos-latest]
+    steps:
+      - uses: actions/checkout@v3
+      - name: Build multi-version file
+        run: printf '%s\n' 3.7 3.8 3.9 3.10 > .python-version
+        shell: bash
+      - name: Setup Python and check latest
+        uses: ./
+        with:
+          python-version-file: '.python-version'
+          check-latest: true
+      - name: Validate version
+        run: |
+          $pythonVersion = (python --version)
+          if ("$pythonVersion" -NotMatch "3.10"){
+            Write-Host "The current version is $pythonVersion; expected version is 3.10"
+            exit 1
+          }
+          $pythonVersion
+        shell: pwsh
diff --git a/dist/setup/index.js b/dist/setup/index.js
index aaeeac4b..fd00e44d 100644
--- a/dist/setup/index.js
+++ b/dist/setup/index.js
@@ -67984,6 +67984,15 @@ function cacheDependencies(cache, pythonVersion) {
         yield cacheDistributor.restoreCache();
     });
 }
+function readVersionFile(versionFile) {
+    const data = fs_1.default.readFileSync(versionFile, 'utf8');
+    const versions = data
+        .split('\n')
+        .map(input => input.trim())
+        .filter(x => x !== '');
+    core.info(`Resolved ${versionFile} as ${versions.join(', ')}`);
+    return versions;
+}
 function resolveVersionInput() {
     const versions = core.getMultilineInput('python-version');
     let versionFile = core.getInput('python-version-file');
@@ -67997,16 +68006,12 @@ function resolveVersionInput() {
         if (!fs_1.default.existsSync(versionFile)) {
             throw new Error(`The specified python version file at: ${versionFile} doesn't exist.`);
         }
-        const version = fs_1.default.readFileSync(versionFile, 'utf8');
-        core.info(`Resolved ${versionFile} as ${version}`);
-        return [version];
+        return readVersionFile(versionFile);
     }
     utils_1.logWarning("Neither 'python-version' nor 'python-version-file' inputs were supplied. Attempting to find '.python-version' file.");
     versionFile = '.python-version';
     if (fs_1.default.existsSync(versionFile)) {
-        const version = fs_1.default.readFileSync(versionFile, 'utf8');
-        core.info(`Resolved ${versionFile} as ${version}`);
-        return [version];
+        return readVersionFile(versionFile);
     }
     utils_1.logWarning(`${versionFile} doesn't exist.`);
     return versions;
diff --git a/src/setup-python.ts b/src/setup-python.ts
index 69ea9d36..99e22f99 100644
--- a/src/setup-python.ts
+++ b/src/setup-python.ts
@@ -22,6 +22,16 @@ async function cacheDependencies(cache: string, pythonVersion: string) {
   await cacheDistributor.restoreCache();
 }
 
+function readVersionFile(versionFile: string) {
+  const data = fs.readFileSync(versionFile, 'utf8');
+  const versions = data
+    .split('\n')
+    .map(input => input.trim())
+    .filter(x => x !== '');
+  core.info(`Resolved ${versionFile} as ${versions.join(', ')}`);
+  return versions;
+}
+
 function resolveVersionInput() {
   const versions = core.getMultilineInput('python-version');
   let versionFile = core.getInput('python-version-file');
@@ -42,9 +52,7 @@ function resolveVersionInput() {
         `The specified python version file at: ${versionFile} doesn't exist.`
       );
     }
-    const version = fs.readFileSync(versionFile, 'utf8');
-    core.info(`Resolved ${versionFile} as ${version}`);
-    return [version];
+    return readVersionFile(versionFile);
   }
 
   logWarning(
@@ -52,9 +60,7 @@ function resolveVersionInput() {
   );
   versionFile = '.python-version';
   if (fs.existsSync(versionFile)) {
-    const version = fs.readFileSync(versionFile, 'utf8');
-    core.info(`Resolved ${versionFile} as ${version}`);
-    return [version];
+    return readVersionFile(versionFile);
   }
 
   logWarning(`${versionFile} doesn't exist.`);