我的脚本必须在 Linux 和 Windows 中运行。脚本接收两个模式字符串作为参数:
C:\test或/usr/local/test(无后缀)C:\test\或/usr/local/test/(带有后缀'\'或'/')
以下代码没有问题,但我不想使用特定字符 '/'。因为它接近错误,我认为。 你有什么想法吗?
# -*- coding: utf-8 -*-
import argparse
def parse_args():
parser = argparse.ArgumentParser(description='This script is ...')
parser.add_argument('--confdir', type=str, required=True)
parser.add_argument('--outdir', type=str, required=True)
return parser.parse_args()
if __name__ == '__main__':
args = parse_args()
# "C:/test" or "C:/test/" in Windows
# "/usr/local/test" or "/usr/local/test/" in Linux
print(args.confdir)
f = open(args.confdir + "/" + 'sample.txt')
print(f.read())
请您参考如下方法:
您可以使用诸如 pathlib.Path 之类的对象自动处理尾随路径分隔符,例如:
#!/usr/bin/env python3
import argparse
import pathlib
parser = argparse.ArgumentParser()
parser.add_argument('--confdir', type=pathlib.Path, default='.')
args = parser.parse_args()
print(args.confdir)
path = args.confdir / 'sample.txt'
print(path)
print(path.read_text())
