「已注销」 2022-05-25 19:17 采纳率: 100%
浏览 34
已结题

python相对路径问题

问题遇到的现象:
在做一个简单但是对我来说不简单的程序,在调用文件是一开始是用的绝对路径,现在打算改成相对路径,可是遇到了问题,具体代码如下:

class ID():

    def set(IDname,cold,phone=None):
        #try:
        score = str(5)
        score_write=int(int(score)+5)
        f = open(f'ID\\{IDname}.txt',"w")#相对路径打开文件
        f.write(str(IDname)+'\n')#开始写入
        f.write(str(cold)+'\n')
        f.write(str(score_write)+'\n')
        if phone:
            phone_write = int(int(phone)+78915666942)
            f.write(str(phone_write)+'\n')
        f.close()#关闭文件
        #except:
            #pass

    def use(IDname,cold):
        IDname = str(IDname)
        cold = str(cold)
        try:
            f = open(f'ID\\{IDname}.txt',"r")#同上
        except FileNotFoundError:
            print('你看见你的账号了吗?我没看见。')
        else:
            IDname_read = str(f.readline().strip())
            cold_read = str(f.readline().strip())
            score_read = str(f.readline().strip())
            score_true=int(int(score_read)-5)
            f.close()
            if str(IDname) == str(IDname_read) and str(cold) == str(cold_read):#判断用户输入的内容是否与读取内容相同
                print('你好,'+str(IDname_read)+'!')
                print('您的当前分数是:'+str(score_true))
            else:
                print('您输入的用户名/密码不正确!')

以上代码是其中的两个函数,我的程序所有的函数的路径都是这样的:f = open(f'ID\{IDname}.txt',"w")#相对路径打开文件

以下是我的文件夹路径关系:E:\CONTINUE\科技\程序\py\可食用\Dai_ID\ID\x_x_x.txt(由于经常到处跑所以放在了U盘里,别见外哈,我想用相对路径也是为了解决各个盘路径不一的问题)

如果对我的问题还有不清楚,请留言
对帮组我的人们提出感谢!

  • 写回答

1条回答 默认 最新

  • fizzyfly 2022-05-25 19:34
    关注

    如果直接使用f = open(f'ID{IDname}.txt',"w")的话,程序会在你当前工作目录查找ID文件夹,除非你把ID文件夹和程序放在同一个目录下,不然会报错。
    正常操作应该是根据当前工作目录来拼接你要的文件路径

    import os
    cwd = os.getcwd()  #当前工作目录,假如是“E:\CONTINUE\科技\程序\py”
    id_path = os.path.join(cwd, r"可食用\Dai_ID", f"ID\\{IDname}.txt")  #根据上面的当前工作目录,一步一步拼接出文件路径
    f = open(id_path,"r")
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月3日
  • 已采纳回答 5月26日
  • 创建了问题 5月25日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。