如何解决Python中os.path.join的路径拼接问题

首先展示我的脚本如图。第一部分是想读取txt里的内容,按行展示并在每行内容后面加上“.xml”,print(line_new)结果显示为:3031303031303031... 首先展示我的脚本如图。第一部分是想读取txt里的内容,按行展示并在每行内容后面加上“.xml”,print(line_new)结果显示为:30313030313030310000284f00000001.xml
30313030313030310000285200000001.xml
确实是我想要的,成功了。然鹅第二步:想要把文件名匹配的文件copy到新的文件夹中时,却出错了,print(xml_path),变成了如下的结果:
E:/SSD-Tensorflow-master/VOC2007/Annotations/1
E:/SSD-Tensorflow-master/VOC2007/Annotations/.
E:/SSD-Tensorflow-master/VOC2007/Annotations/x
E:/SSD-Tensorflow-master/VOC2007/Annotations/m
E:/SSD-Tensorflow-master/VOC2007/Annotations/l
显然是按照原路径+每行的每个字符拼接成了新的路径,这个是什么问题?我想要得到的结果是:print(xml_path)后得到E:/SSD-Tensorflow-master/VOC2007/Annotations/30313030313030310000285c00000001.xml请问大神们,如何解决?
展开
 我来答
待依莫言
2019-04-18 · TA获得超过596个赞
知道小有建树答主
回答量:404
采纳率:78%
帮助的人:64.4万
展开全部

运行这个for循环的时候,你的line_new 只是一个字符串 '30313030313030310000284f00000001.xml' 

循环遍历这个字符串的话,xml_name就相当于是字符串内的每一个字符 。

你应该新建一个 list, 在构建 line_new之后把每一个 line_new加到list里,在这里遍历这个list 来判断其中匹配的路径

追问
能写下代码参考下吗?
追答

line_new_list = [] 

line_new_list.append(line_new)

for xml_name in line_new_list :

安定还精练的小牛U
2019-04-18 · 超过93用户采纳过TA的回答
知道小有建树答主
回答量:130
采纳率:0%
帮助的人:17.4万
展开全部
是在拼接路径的时候用的。举个例子,
os.path.join(“home”, "me", "mywork")
在Linux系统上会返回
“home/me/mywork"
在Windows系统上会返回
"home\me\mywork"
好处是可以根据系统自动选择正确的路径分隔符"/"或"\"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式