作为新手
python
我正在从
batch
调用 Delft-FEWS
文件。这个 batch
文件看起来像这样:
%1 %2 %3 > logfile.txt
在
Delft-FEWS
中定义了参数,这使得 batch
文件在 Windows
中调用之前看起来像这样:
python some-script.py "C:\folder1\folder2"
我的问题是,我无法更改传递给
python
的参数中的“\”,因为它们是在 Delft-FEWS
深处定义的。
在
python
中,参数的用法如下:
import os
import sys
var = sys.argv[1]
由于
var
包含 '\' ,它被解释为转义字符,因此我在运行代码时收到错误。
我读到 python
提供了通过在字符串前面添加“r”来将字符串解释为文字的可能性。如果我手动这样做:
var = r"C:\folder1\folder"
它工作完美。但是,我无法设法通过
python
文件将其传递给 batch
脚本,并且将其添加到脚本本身中也不起作用。
这是我迄今为止尝试过的:
在
batch
-文件:
%1 %2 r%3 > logfile
这使得批处理文件看起来像这样:
python some-script.py "rC:\folder1\folder2"
在
python
代码中:
var = f"r{var}"
两种方式都会导致相同的错误,因为字符串更改为“rC:older1 old2”,但
python
不会将“r”解释为文字字符串指示符。
我该如何解决这个问题?
运行 python 脚本时,有多种方法可以获取文件路径。
你的方法非常简单并且应该可行,但我建议你使用一个库来获取像“argparse”这样的参数。 (因为你使用Python)
您可以像这样获取文件路径或文件夹路径:
import argparse
parser = argparse.ArgumentParser(description="Process a file path.")
parser.add_argument("file_path", help="The path to the file")
args = parser.parse_args()
print("File path entered:", args.file_path)
它还制作了一个简单的 CLI(命令行界面)