Как указать путь к файлу терминала Amazon AWS EC2 Ubuntu в скрипте Python? - PullRequest
0 голосов
/ 27 декабря 2018

Я запускаю скрипт Python из терминала Ubuntu 18.04 в экземпляре Amazon AWS EC2.Сценарий открывает текстовый файл, обрабатывает текст и сохраняет обработанный текст в другом файле.У меня установлено все необходимое программное обеспечение, и доступ к сценарию выполняется правильно, пока не возникнет ошибка: интерпретатор не распознает путь к файлу, хотя я могу перейти к этому файлу и открыть его с помощью vim.

Я пробовал различные формулировки пути со скобками в обоих направлениях, а также с начальным тильдой '~' и без него.В настоящее время я использую пакет 'os' в Python3 с командой 'os.path.join ()', которая теоретически должна автоматически формулировать путь совместимым с системой способом, но все равно появляется та же ошибка.

Вот скрипт с путем к файлу.

# -*- coding: utf-8 -*-

import os 
import io
import pandas as pd
import numpy as np

num_batches = 537

for i in range(1, num_batches + 1):

    in_f = os.path.join('~','home', 'ubuntu', 'compounds', 'intermed-batches', 'output_{0}.txt'.format(str(i)))
    out_f = os.path.join('~','home', 'ubuntu', 'compounds', 'done-batches', 'done_batch_{0}.txt'.format(str(i)))

    print("Processing batch {0}...".format(str(i)))

    with io.open(in_f, 'r', encoding='utf8') as infile, \
        io.open(out_f, 'w', encoding='utf8') as outfile:

        entries = [line.rstrip().split('\t') for line in infile]

Ошибка происходит в строке «with io.open ...» и говорит:

Processing batch 1...
Traceback (most recent call last):
File "freq-consolidator-aws.py", line 17, in <module>
    with io.open(in_f, 'r', encoding='utf8') as infile, \
FileNotFoundError: [Errno 2] No such file or directory: '~/home/ubuntu/compounds/intermed-batches/output_1.txt'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...