Python - 检索“.txt”文件 v

Python - Retrieve ".txt" file v

我正在尝试通过 python 文件中的 wget 命令 检索“.txt”文件 (python 2.7)

这是我使用的代码:

```
product_file = subprocess.check_output([
                             'wget',
                             '--http-user=example@example.ch',
                             '--http-password=example',
                             '--no-check-certificate',
                             '--output-document=file.txt',
                             '--no-cache',
                             '--auth-no-challenge',
                             'https://www.example.com',
                             'shell=True'
                         ])
catalog = open(product_file)
```

当我 运行 代码时,我遇到了这个错误:

RuntimeError: Command '['wget', '--http-user=example@example.ch', '--http-password=example', '--no-check-certificate', '--output-document=catalog.txt', '--no-cache', '--auth-no-challenge', 'https://www.example.com', 'shell=True']' return with error (code 1)                            

当我在终端中尝试 wget 命令时,它起作用了;我能够检索文件“.txt”。 我已经检查了 file/directory 权限。

我阅读了关于子流程模块的 python 文档,但我并不了解每个细节(我没有太多经验);这个子流程模块肯定缺少一些东西。

我认为问题出在shell=True。您的意思是将其作为 subprocess.check_output 函数的关键字参数,而不是 wget 命令的一部分。 您实际上想将 shell kwargs 传递给 check_output 函数:

product_file = subprocess.check_output([
                             'wget',
                             '--http-user=example@example.ch',
                             '--http-password=example',
                             '--no-check-certificate',
                             '--output-document=file.txt',
                             '--no-cache',
                             '--auth-no-challenge',
                             'https://www.example.com'
                         ], shell=True)
catalog = open(product_file)

(还有一个括号问题)

试试这个:-

product_file = subprocess.check_output(
    'wget --http-user=example@example.ch --http-password=example --no-check-certificate --output-document=file.txt --no-cache --auth-no-challenge https://www.example.com', shell=True)