首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否有一种定义良好的方法来检查路径是否是Python中的简单文件/文件夹名称?

是否有一种定义良好的方法来检查路径是否是Python中的简单文件/文件夹名称?
EN

Stack Overflow用户
提问于 2017-07-04 19:59:36
回答 1查看 48关注 0票数 0

我试图检查给定的用户提供的字符串是否是一个简单的文件/文件夹名。我计划使用os.path.join()将该名称连接到预设的根目录,但我希望检测并禁止试图遍历该根目录之外任何位置的路径。

例如,值为“track001.mp3”的字符串很好,它将解析为“root_dir/track001.mp3”。但是,应当发现并禁止:

代码语言:javascript
运行
AI代码解释
复制
'../other_root_dir/'
'/etc'
'/'
'~'
'subdir/inner_file'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-04 20:06:57

我建议您创建路径字符串,就像通常假设用户行为一样(例如,传递“简单”或符合路径名称)。然后我将使用os.path.expandvarsos.path.normpath来获取实际的路径名。最后,我将检查以确保实际路径名驻留在根目录中。类似于:

代码语言:javascript
运行
AI代码解释
复制
from os.path import expandvars, normpath, join

ROOT_DIR = 'root_dir'

user_path = 'some_path'
test_path = normpath(expandvars(join(ROOT_DIR, user_path)))

expected_prefix = normpath(ROOT_DIR)
if not test_path.startswith(expected_prefix):
    raise ValueError(f'Invalid path "{user_path}"')  # python3.6 f-string.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44916777

复制
相关文章
当AI学会种黄瓜
人生三大终极问题—— 早上吃什么?中午吃什么?晚上吃什么? 俗话说得好,民以食为天。人工智能时代的食物,会不会带一点数字的味道呢? 别说,还真会。 会码代码的吃货们在追求美味的路上越走越远,竟然把人工智能用在大蒜酱上。 多亏了人工智能与数据科学,麻省理工的吃货们找到了最好吃的大蒜酱。也许不久的将来,我们吃到的青酱意面里酱和面的原材料都是人工智能种出来的了! 前不久,麻省理工大学的研究者就用数据科学和机器学习让做大蒜酱的罗勒叶变得更好吃了。他们通过机器学习让人工智能改变种植条件,使罗勒叶一直散
腾讯大讲堂
2019/05/16
7370
当AI学会种黄瓜
2488 绿豆蛙的归宿
2488 绿豆蛙的归宿 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 黄金 Gold 题目描述 Description   随着新版百度空间的上线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿。   给出一个有向无环图,起点为1终点为N,每条边都有一个长度,并且从起点出发能够到达所有的点,所有的点也都能够到达终点。绿豆蛙从起点出发,走向终点。   到达每一个顶点时,如果有K条离开该点的道路,绿豆蛙可以选择任意一条道路离开该点,并且走向每条路的概率为 1/K 。   现在
attack
2018/04/12
2K0
2488 绿豆蛙的归宿
前端请进:玩转Angular 注射器
2009 年 AngularJS 第一个把“依赖注入”机制引入到了前端开发中,开创了用后端设计思想大规模入侵前端领域的先河。 如果没有深入使用过 Spring 框架,对普通技术人员来说,“依赖注入”机
CSDN技术头条
2018/03/26
1.2K0
前端请进:玩转Angular 注射器
android 反编译,反,注射LOG
invoke-static {p2}, Lnet/iaround/connector/DebugClass;->showLog(Ljava/lang/String;)V
全栈程序员站长
2022/07/06
2280
基于ImmDbg的Python内存注射
其实上一篇文章完全是拷贝来的,目的是做个本地备份。 😀 最近开始将一些工作转移到ImmDbg,在此之前是想在OD的脚本中做一些简单的工作来实现一些内存数据的修改以及写入功能,但是事实上由于OD脚本的API函数有限,要实现诸如文件读取之类的工作发现基本没什么可能,当然了也有可能是因为自己孤陋寡闻, :8 如果谁知道相关的APi还望不吝赐教。 而ImmDbg则很好的弥补了这一点,因为即使ImmDbg的Python Lib没有提供相关的诸如文件从操作之类的函数,那么也可以很简单引入一些其他的库来实现相
obaby
2023/02/24
3080
绿豆蛙的归宿 期望dp+拓扑排序
f[ x ] = sigema( f[ y ] + w(x,y)  )/out[ x ];
用户2965768
2019/04/17
3270
日本小哥如何使用深度学习和TensorFlow种黄瓜?
导读 现在说机器学习和深度学习的应用只受限于人们的想象力并不夸张。不仅全世界的数据科学家们为之着迷,甚至在日本的农场,一位小哥为了减轻妈妈的工作负担,也开始尝试采用深度学习和Tensor Flow种黄瓜。 大约一年前,曾为日本汽车业内一名嵌入式系统设计师的MakotoKoike开始在父母的黄瓜种植园帮工。根据大小形状颜色和其他属性来分选黄瓜这件事所需的工作量令他吃惊。 Makoto Koike那一生致力于提供鲜脆黄瓜的父亲就很为他那些仍带有细刺的扎手黄瓜感到自豪。颜色鲜艳又直又粗并且有许多刺的黄瓜被认为是
大数据文摘
2018/05/24
1.3K0
vscode设置护眼主题-设置绿豆沙护眼色
青色、绿色能放松眼睛的睫状肌。人的眼睛在看黄色的时候会直接对焦在视网膜上,看红色时对焦在视网膜的后方(睫状肌要比看黄色时用力,才能把焦点拉到视网膜上)。但在看绿色时则对焦在视网膜前面(睫状肌比看黄色时放松), 可放松眼球的调节功能,睫状肌在看绿色时亦相对比红黄色放松。眼睛的睫状肌因而得到休息,减轻眼睛疲劳。
超级小可爱
2023/10/18
3.6K0
vscode设置护眼主题-设置绿豆沙护眼色
春招实习面经分享(已拿到腾讯春招Offer)
十分幸运地收到了腾讯的Offer。。回来报答一下各位牛客网的战友们,说起来也是有点运气成分,最后通过腾讯的内推收到了offer!之前也屡遭重创,阿里的内推一面挂了(寒假过早地投简历,电话面试应对地不太好)、CVTE的笔试挂了(这个确实是能力问题,CVTE笔试问的很广很深,js的东西基本都是问ES6的东西,generator、async、await、proxy,连底层的microtask、macrotask都考了,气得我考完的两天把ES6标准入门那本书啃了),美团的一面挂了(数据结构和算法硬伤。。) 进入正题
牛客网
2018/04/28
7110
2018春招总结
  从2018.2.27正式投的第一份简历开始计算,到今天是2018.4.24,到现在算下来大概两个月,随着确认了腾讯的录用通知函,漫长的春招终于告一段落,虽然京东、华为的offer还没有确认,但是这已经不是能改变我意向的事情了。下面总结一下这段时间来的面试吧。这里只写有面试经历的公司,只笔试过的不算。这里时间不一定按照公司顺序   阿里巴巴-蚂蚁金服(内推,已凉)   首先2月27号开始拜托师兄内推了阿里支付宝部门,没想到的时候阿里的效率这么快,3月2日下午阿里就打电话过来了,当时我在成都旅游过程中,遗憾
牛客网
2018/04/28
1.2K0
洛谷P4316 绿豆蛙的归宿(期望)
给出一个有向无环图,起点为1终点为N,每条边都有一个长度,并且从起点出发能够到达所有的点,所有的点也都能够到达终点。绿豆蛙从起点出发,走向终点。 到达每一个顶点时,如果有K条离开该点的道路,绿豆蛙可以选择任意一条道路离开该点,并且走向每条路的概率为 1/K 。 现在绿豆蛙想知道,从起点走到终点的所经过的路径总长度期望是多少?
attack
2018/07/27
2830
华为春招实习记录
思考了很久,接收了华为的实习意向书,还没有与HR接触过,也不知道什么时候会有后续的通知。 杭州,3.30面试,4.9号HR电话询问实习时间意向,4.17发的录用意向书,中间隔了一个清明的假期,所以感觉也没有特别特别的长。 但是前面还是有很多不确定的因素,签约通知里面说的邮件我也没有收到,比如最后的部门(发了邮件问了那边是根据双选),实习的时长,会不会还有其他的意外啊等等。 即使是这样,依然想去体验一下,毕竟机会也不多,况且人嘛,总是在选择中一步步来的。 发这个帖的本意是想做个记录,把遇到的情况能够做个
牛客网
2018/04/28
1.4K0
华为春招实习记录
小米2021春招面试
回答:从uboot如何引导内核启动,kernel启动时怎么挂载根文件系统从头到尾说了一下。
Jasonangel
2021/05/28
9590
春招伪产品面经
本人背景: 科班出身,之前受家庭观念影响一直投身科研,但是自身一直并不喜欢,后经女票点醒,毅然决定转向产品,这里分享一下我在简历上0产品经验的情况下如何找产品的经历  前期准备: 前期准备非常重要,我3月份打算转之后,由于比较急躁,马不停蹄的去参加了腾讯的提前批和网易游戏的面试,结果都在群面就挂了…… 群面的经验后面再提,这里主要需要提一下,产品可能没有太多硬技能要求,但是软实力要求特别高,如果你没有真的去了解产品类的工作,没有足够的相关思考,那面试时你现场应变的时候,是很难把问题想全面想深入的,产品
牛客网
2018/05/30
5060
2018年春招腾讯面试
网申环节 网申时间 注意网申时间,不要太晚,卡时间点,因为腾讯有提前批计划,网申之后,如果你投递的事业群如果觉得你简历不错,会直接打电话面试,所以网申阶段也最好准备一下面试内容。如果面试失败了也没关系,你还可以接着参加正式面试流程,相当于“头号玩家”里的第二条命,只不过事可能已经不是你选择的事业群 事业群选择 在网申阶段的时候,尽量做好选择,对事业群不熟悉的同学,可以看一下网申官网的描述,个人简历填完后,首先是该事业群面试官看到你的简历, 如果觉得你不匹配或者面完之后不满意,会把你的简历释放的简历池,这个时
牛客网
2018/06/04
1.9K0
cvte春招测试面试记录
cvte春招测试面试记录,挂在了综合面试(hr面)。。。尽量回忆面试的问题(可能不完全)。
牛客网
2019/04/19
7860
企鹅种黄瓜,腾讯AI进军农业!获国际AI温室种植大赛亚军
此次比赛全称:国际人工智能温室种植大赛(Autonomous Greenhouse Challenge)。
量子位
2018/12/27
7200
企鹅种黄瓜,腾讯AI进军农业!获国际AI温室种植大赛亚军
《自然》杂志:注射一针,长效作用半年,艾滋新药在路上
今天,《自然》杂志报道了吉利德科学(Gilead Sciences)生物医药公司研发的新型抗艾滋病毒的小分子药物。初步临床研究表明,单次给药后,可使艾滋病病毒感染者的病毒载量降低,注射6个多月后药物仍在体内有活性。
用户6317549
2020/07/03
8070
美图春招产品实习面经
第一次写,尽全力回想细节,望老铁们多担待~~~ 楼主是今年美图春招第一批实习生,事业部:美拍;base:帝都;职位:产品助理。 网申: 楼主是美图第一批网申的,和其他公司一样(除了阿里),网申几乎不刷人,so顺利通过~ 笔试: 3月下旬通知第一次笔试,当晚本来学校导师通知团队开会,楼主思前想后,决定不想放弃笔试,于是请假在寝安心答题~ 在这里,楼主想保留职业道德,所以就不透露详细题目了,大概说一下题目类型,4道主管大题,无客观选择。主观题内容大致考察:逻辑思维;产品思维;人际相处;与美图的“美”有关
牛客网
2018/05/30
1.1K3
阿里春招简历小课堂笔记
简历中的文字颜色不应该超过两种,最好只使用一种,不要加粗,且格式最好保持前后一致。
千灵域
2022/06/17
1950

相似问题

流星和绿豆:黄瓜

11

春豆值注射

10

豆春值注射

22

春豆不被注射

15

春注射模拟豆

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文