Linux не может найти указанный путь - PullRequest
0 голосов
/ 09 марта 2020

Мой python скрипт работает на Windows без проблем. Но тот же сценарий должен работать и на компьютере Linux. При запуске он указывает, что указанный путь не существует. Обратите внимание, что переменная «путь» указывает на облачный сервер

. Впоследствии я попробовал функцию os.path.join после просмотра некоторых форумов, которые также потерпели неудачу

import os
import re
import sys

#List .xlsx files followed by the string ESC
path = '\\\\cloudnetworkonlinuxserver'
path2 = 'DBX'
path3 = 'SrcFiles'
path4 = 'MEBilling'
path5 = 'ParmFiles'

filenames = os.listdir(os.path.join(path, path2, path3, path4))
for filename in filenames:
    getdate = re.search('(?<=ESC_)\w+', filename)

    #Replace '_' with '-'
    if getdate:
        date = getdate.group(0).replace('_', '-')
        print('The following ESC file has date', date)

#Create .prm file with following body
f = open(os.path.join(path, path2, path5, "wf_SC_Monthend_Billing_XLS" + "." + "prm"), 'w')

#f.write cannot take more than one argument. Write variables such
a = '$$WF_PERIOD='
b = date

#Write in body of file
f.write("[Global]\n")
f.write('%s%s' % (a,b,))

#Close writing process
f.close

Какие другие методы там в указании пути, который совместим с этими обеими операционными системами?

1 Ответ

0 голосов
/ 09 марта 2020

Предполагается, что \\cloudnetworkonlinuxserver является ресурсом Samba: только этот путь Windows -specifi c. В зависимости от платформы доступ к этому общему ресурсу может быть различным.

На Linux вам придется смонтировать этот общий ресурс сначала по какому-либо физическому пути, для пример /mnt/cloudshare. Тогда вместо этого вы получите доступ к этому пути.

Вы должны взять этот путь из аргумента командной строки или переменной среды, чтобы можно было передать соответствующий путь в зависимости от того, что является правильным в каждой среде.

Или, в случае, если это должно быть частью сценария, вам придется заставить свой сценарий позаботиться о подключении общего ресурса в случае, если среда Linux (и в идеале также отключить его, когда он больше не нужен).

...