Я хотел бы скомпилировать и распространять (на .net) некоторые программы python, которые хорошо работают с IronPython, но я новичок в .net и получаю ошибки, связанные с конкретными модулями python. Существует утилита для компиляции на низкий уровень .net, и она работает хорошо, но я получаю ошибки при работе с общими библиотеками; код, который запускается в интерпретаторе, не обязательно компилируется. Например, ниже используются базовые модули shutil
, getpass
и os
. getpass.getuser()
возвращает имя пользователя в виде строки. shutil
обеспечивает, помимо прочего, функцию копирования (хотя я могу переписать ее на чистом питоне и получить возможность компиляции), а os
используется здесь для получения информации о папке, создания файлов и разворачивания файлов. Как я могу адаптировать материал по следующим строкам, в целом или любой части, чтобы использовать только библиотеки, родные для .net? Если кто-то использовал IronPython в качестве моста от python до обучения .net, любые связанные с этим советы заслуживают одобрения.C# или другие .net-эквиваленты базовых модулей python для IronPython?
import shutil
import os
import getpass
uname = getpass.getuser()
folders = ["https://stackoverflow.com/users/"+uname+"/location", "https://stackoverflow.com/users/"+uname+"/other_location"]
for folder in folders:
for root, dir, files in os.walk(folder):
for file in files:
file_name = os.path.join(root, file)
time_stamp = os.stat(file_name).st_mtime
time_dict[time_stamp] = file_name
working_list.append(time_stamp)
def sync_up():
for item in working_list:
if item not in update_list:
os.remove(item)
else:
shutil.copy2(item, some_other_folder)
def cp_function(target=some_folder):
if os.path.exists(target):
sync_up()
else:
try:
os.mkdir(target)
sync_up()
except:
print """error connecting
"""