Переименование файла на удаленном файловом сервере в C# / Python
Мне нужно переименовать целую кучу файлов на файловом сервере Windows - мне все равно, какой язык я использую, если это быстро и легко!
Я знаю, что это основное, но просто для уточнения - в псевдокоде...
server = login (fileserver, creds)
foreach (file in server.navigateToDir(dir))
rename(file)
Я знаю, как это сделать в Python/C#, если бы я был локальным пользователем, но понятия не имею, возможно ли это сделать удаленно с помощью Python. Я искал фрагменты кода/помощь, но пока не нашел ни одного.
Спасибо.
4 ответов:
Используйте \ \ имя_сервера\sharename\somefile.foo for filenames-при условии, что у вас есть доступ для подключения к нему и работает на windows.
Вы также можете сопоставить сетевой диск и рассматривать его как любой другой локальный диск (y:\sharename\somefile.foo)
Вы также можете использовать PSEXEC для удаленного выполнения кода на сервере, если вам нужна производительность локально выполняемого кода. См. http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
Посмотрите на pyfilesytem, он обеспечивает согласованный интерфейс для локальных и удаленных файловых систем.
Ниже приводится переименование файла в каждом из подкаталогов указанного пути к папке. Он переименовывает файл из данного имени файла (например."чепуха.txt") в foldername+extension.
NB. Z может быть как локальным, так и сетевым диском (т. е. если папка находится на файловом сервере, сопоставьте сетевой диск с ней).
Например, из оболочки...
python renamer.py "Z:\\FolderCollectionInHere" blah.txt csv... переименует файл ' бла.txt' в каждом непосредственном подкаталоге "Z:\FolderCollectionHere-чтобы .csv.
import os import sys class Renamer: def start(self, args): os.chdir(args[1]) dirs = os.listdir(".") for dir in dirs: try: os.rename(dir + "\\" + args[2], dir + "\\" + dir + "." + args[3]) print "Renamed file in directory: " + dir except Exception: print "Couldn't find file to rename in directory: " + dir Renamer().start(sys.argv)
Comments