Python 路劲是三次变量 读取文件不成功

我是一个一直让用户输入路劲的,代码如下

print("Please input the folder address")
path=input()
 
#这里输入是 "D:\AAA\BBB"
#D:AAA\BBB ---- 是copy文件夹的地址
 
print("Please input the excel name")
excel_name=input()
#这里输入是 "DDD"
#DDD是excel 的名字

print("Please input the sheet name")
sheet_name=input()
#这里输入是 "EEE"
#EEE是excel 所选 sheet 的名字

sheet_name="'"+sheet_name
FullPathName= path+excel_name+".xlsx"+"'"+","+sheet_name
 
df=pd.DataFrame(pd.read_excel(FullPathName))
 

我想我组装变量能直接读取到文件 类似如下
df=pd.DataFrame(pd.read_excel(r'D:\Share\AAA\BBB\CCC.xlsx',"EEE"))
但是一直不成功 报错提示我找不到这个文件

该回答引用NewBing,仅供参考,不保证完全正确

您好,您可以使用以下代码来读取文件:

import pandas as pd
import os

print("请输入文件夹地址")
path = input()

print("请输入Excel名称")
excel_name = input()

print("请输入Sheet名称")
sheet_name = input()

sheet_name = "'" + sheet_name + "'"
FullPathName = os.path.join(path, excel_name + ".xlsx")

df = pd.read_excel(FullPathName, sheet_name=sheet_name)

其中,os.path.join()函数可以将多个路径组合成一个路径名,避免了手动拼接路径的麻烦。pd.read_excel()函数中的sheet_name参数可以指定要读取的工作表的名称或索引。¹⁴⁶


源: 与必应的对话, 2023/7/12
(1) os.path --- 常用路径操作 — Python 3.11.4 文档. https://docs.python.org/zh-cn/3/library/os.path.html.
(2) 最新Pandas.read_excel()全参数详解(案例实操,如何利用python导入excel) - 知乎. https://zhuanlan.zhihu.com/p/142972462.
(3) Python--pandas读取excel - 知乎. https://zhuanlan.zhihu.com/p/362709226.
(4) Python os.path 模块 | 菜鸟教程. https://www.runoob.com/python/python-os-path.html.
(5) 一文搞懂Python的文件路径操作 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/600048459.
(6) pandas.read_excel — pandas 2.0.3 documentation. https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html.
(7) 用python的pandas读取excel文件中的数据 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/409583146.

说明你对什么是转义一点都不清楚
用户输入的文字都是转义过的,像\r\n这种符号是根本没法通过键盘输入的
你把r这个字母拼接进字符串里根本起不到转义的作用,唯一作用就是本来好好的一个目录前面多了个r就变成个非法路径

你这种实现相当于把r和FullPathName拼接,这种可以使用f-string来格式化,比如
fullname = "a.b"
print(f'{fullname!r}')

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7786160
  • 你也可以参考下这篇文章:python编写一个类表示平面坐标系中的一个点,点对象应该有计算该点到原点之间的距离的方法,并编写测试代码验证点类
  • 同时,你还可以查看手册:python- 定义扩展类型:已分类主题- 更多建议 中的内容
  • 除此之外, 这篇博客: python遍历多个文件夹下的文件复制到一个文件夹中的 从指定目录下遍历指定后缀的所有文件,然后拷贝到指定文件夹 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    import os
    import shutil
    
    #对象文件的类型指定
    file_type_list = ['pdf','txt','xls','xlsx','pptx','doc']  
    src_folder = r'C:\Users\carry\Desktop\test001'
    #取得文件夹下面的所有指定类型的文件全名(路径+文件名)
    # os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。
    # for dirpath,dirnames,filenames in os.walk(folder):
    #     print(dirnames)
    def get_file_list(folder):
        filelist = []  #存储要copy的文件全名
        for dirpath,dirnames,filenames in os.walk(folder):
            for file in filenames:
                file_type = file.split('.')[-1]
                if(file_type in file_type_list):
                    file_fullname = os.path.join(dirpath, file) #文件全名
                    filelist.append(file_fullname)
        return filelist
    
    
    #将文件list里面的文件拷贝到指定目录下
    def copy_file(src_file_list, dst_folder):
        print('===========copy start===========')
        for file in src_file_list:
            shutil.copy(file, dst_folder)
        print('===========copy end!===========')
    
    # filelist = get_file_list(src_folder)
    
    if(__name__=="__main__"):
        #copy源所在目录
        src_folder = r'C:\Users\carry\Desktop\test001'  #路径最后不要加\  
        #copy到的指定目录
        dst_folder = r'C:\Users\carry\Desktop\target'   #路径最后不要加\ 
        
        #取得文件夹下所有指定类型的文件全名
        filelist = get_file_list(src_folder)
        copy_file(filelist, dst_folder)
    

    参考:https://blog.csdn.net/bigear_yu/article/details/105387727

  • 您还可以看一下 jeevan老师的Python量化交易,大操手量化投资系列课程之内功修炼篇课程中的 讲师简介,量化交易介绍及自动化交易演示小节, 巩固相关知识点