Python中获取用户输入文件夹绝对路径出现重复问题如何解决?
问题分析与解决
你的代码输出重复文件夹名的原因很明确:os.path.abspath()会基于当前工作目录拼接相对路径。如果运行代码时,你的当前工作目录已经是C:\Users\Desktop\Codes\Neon,输入Neon后,它会自动把当前目录和输入的名称拼接,最终得到C:\Users\Desktop\Codes\Neon\Neon。
修正方案
根据你的需求,提供几种可行的解决方式:
1. 直接获取当前文件夹的绝对路径
如果运行代码时你已经在目标文件夹里,不需要输入文件夹名,直接用os.getcwd()就能拿到当前目录的绝对路径:
import os print("The absolute path is:", os.getcwd())
2. 基于上级目录拼接目标路径
如果你需要输入文件夹名,且目标文件夹在当前工作目录的上级目录下,可以先获取父目录再拼接:
import os print("enter folder name") folder_name = input().strip() # 获取当前目录的父目录 parent_dir = os.path.dirname(os.getcwd()) target_path = os.path.join(parent_dir, folder_name) if os.path.exists(target_path): print("The absolute path is:", os.path.abspath(target_path)) else: print(f"Folder {folder_name} doesn't exist in the parent directory.")
3. 完善原代码的路径处理逻辑
也可以让用户输入相对路径(比如../Neon),同时补充绝对路径的处理分支,确保所有输入都能正确输出:
import os print("enter folder name or path") folder_input = input().strip() if os.path.isabs(folder_input): print("The absolute path is:", folder_input) else: path = os.path.abspath(folder_input) print("The absolute path is:", path)
内容的提问来源于stack exchange,提问作者nitin kashyap
相关产品推荐
相关产品推荐

