[英]Python3 - os.path.join doesn't join the paths
我正在编写一个python代码,该代码扫描subdirectories
中的文件,并根据其具有的列表(csv file)
检查文件是否存在。
到目前为止,如果可以,我可以获取绝对路径,然后将其与字符串连接:
base_dir = os.path.abspath(os.path.dirname(__file__))
csv_path = os.path.join(my_path, csv_filename)
而且我可以成功找到我的csv
,并将其通过pandas或Python的csv
阅读器。
但是,当我检查文件名所在的csv
(正确)时,然后尝试执行以下操作:
base_dir = os.path.abspath(os.path.dirname(__file__))
full_path = os.path.join(base_dir, path, filename)
subdirectory
,filename是我要检查的实际文件名。 当我输出base_dir
和base_dir
,分别得到以下内容:
/home/myname/projectFolder
/subfolder/filename.extension
而不是:
/home/myname/projectFolder/subfolder/filename.extension
发生的事情显然有问题。 我需要完整的文件filepath
来运行os.path.exists()
来查看文件是否存在,但是由于我使用full_path获得的只是相对路径,
我不知道该如何进行。
如果字符串以/
开头,则将其视为absolute path
,这是不希望的。
因此,请尝试从字符串开头删除slash
。
我发现了另一个可以帮助您的stackoverflow链接:
为了获得最终结果,您只需要尽量避免在路径中使用斜线即可。
从os.path.join
的文档中:
[...]如果组件是绝对路径,则所有先前的组件都将被丢弃,并且连接将从绝对路径组件继续。
因此,最有可能的path
以斜杠开头,即path = "/subfolder"
,因此先前的base_dir
被丢弃。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.