2024-09-29 00:14:09 发布
网友
在python中,我有变量base_dir和filename。我想连接它们以获得fullpath。但在windows下,我应该使用\和POSIX /。
base_dir
filename
fullpath
\
/
fullpath = "%s/%s" % ( base_dir, filename ) # for Linux
如何使it平台独立?
使用^{}:
import os fullpath = os.path.join(base_dir, filename)
os.path模块包含独立于平台的路径操作所需的所有方法,但如果需要知道当前平台上的路径分隔符是什么,则可以使用^{}。
你想用os.path.join()来做这个。
使用这种方法而不是字符串连接等的优点是它知道各种特定于操作系统的问题,例如路径分隔符。示例:
import os
在Windows 7下:
base_dir = r'c:\bla\bing' filename = r'data.txt' os.path.join(base_dir, filename) 'c:\\bla\\bing\\data.txt'
在Linux下:
base_dir = '/bla/bing' filename = 'data.txt' os.path.join(base_dir, filename) '/bla/bing/data.txt'
os模块包含许多用于目录、路径操作和查找操作系统特定信息的有用方法,例如通过os.sep在路径中使用的分隔符
在这里挖掘一个旧问题,但是在Python 3.4+上可以使用pathlib operators:
from pathlib import Path # evaluates to ./src/cool-code/coolest-code.py on Mac concatenated_path = Path("./src") / "cool-code\\coolest-code.py"
如果您有幸运行最新版本的Python,那么它可能比os.path.join()更具可读性。但是,如果必须在僵化的或遗留的环境中运行代码,则还需要权衡与旧版本Python的兼容性。
os.path.join()
使用^{} :
os.path模块包含独立于平台的路径操作所需的所有方法,但如果需要知道当前平台上的路径分隔符是什么,则可以使用^{} 。
你想用os.path.join()来做这个。
使用这种方法而不是字符串连接等的优点是它知道各种特定于操作系统的问题,例如路径分隔符。示例:
在Windows 7下:
在Linux下:
os模块包含许多用于目录、路径操作和查找操作系统特定信息的有用方法,例如通过os.sep在路径中使用的分隔符
在这里挖掘一个旧问题,但是在Python 3.4+上可以使用pathlib operators:
如果您有幸运行最新版本的Python,那么它可能比
os.path.join()
更具可读性。但是,如果必须在僵化的或遗留的环境中运行代码,则还需要权衡与旧版本Python的兼容性。相关问题 更多 >
编程相关推荐