Переименование файла на удаленном файловом сервере в C # / Python - PullRequest
2 голосов
/ 21 января 2010

Мне нужно переименовать целую кучу файлов на файловом сервере Windows - я не возражаю против того, какой язык я использую на самом деле, пока он быстрый и простой!

Я знаю, что это основной, но только для пояснения -в псевдокоде ...

server = login (fileserver, creds)

foreach (file in server.navigateToDir(dir))
    rename(file)

Я знаю, как это сделать в Python / C #, если я был локальным пользователем, но понятия не имею, возможно ли вообще сделать это удаленно с помощью Python.Я искал фрагменты кода / справку, но пока не нашел ни одного.

Спасибо.

Ответы [ 4 ]

1 голос
/ 24 января 2010

Взгляните на pyfilesytem , он обеспечивает согласованный интерфейс для локальных и удаленных файловых систем.

1 голос
/ 22 января 2010

Вы также можете использовать PSEXEC для удаленного выполнения кода на сервере, если вам нужна производительность локально исполняемого кода. Смотри http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

1 голос
/ 21 января 2010

Используйте \\ servername \ sharename \ somefile.foo для имен файлов - при условии, что у вас есть доступ к нему и вы работаете в Windows.

Вы также можете подключить сетевой диск и рассматривать его как любой другой локальный диск (y: \ sharename \ somefile.foo)

0 голосов
/ 21 января 2010

Следующее переименовывает файл в каждом из подкаталогов указанного пути к папке. Он переименовывает файл с заданным именем файла (например, «blah.txt») в foldername + extension.

NB. Z может быть локальным или сетевым диском (т. Е. Если папка находится на файловом сервере, подключите к ней сетевой диск).

Например из оболочки ...

python renamer.py "Z:\\FolderCollectionInHere" blah.txt csv

... переименует файл 'blah.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)
...