我需要在Windows文件服务器上重命名一大堆文件 - 我不介意我使用哪种语言,只要它快速简便!
我知道这是基本的,但只是为了澄清 - 用伪代码......
server = login (fileserver, creds)
foreach (file in server.navigateToDir(dir))
rename(file)
如果我是本地用户,我知道如何在Python / C#中执行此操作,但不知道是否可以使用Python远程执行此操作。我搜索了代码片段/帮助但尚未找到。
感谢。
答案 0 :(得分:1)
使用\\ servername \ sharename \ somefile.foo作为文件名 - 只要您有权连接到它并在Windows上运行。
您还可以映射网络驱动器并将其视为任何其他本地驱动器(y:\ sharename \ somefile.foo)
答案 1 :(得分:1)
如果您需要执行本地执行的代码,您还可以使用PSEXEC在服务器上远程执行代码。见http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
答案 2 :(得分:1)
查看pyfilesytem,它为本地和远程文件系统提供了一致的界面。
答案 3 :(得分:0)
以下命令重命名给定文件夹路径的每个子目录中的文件。它将文件从给定的文件名(例如“blah.txt”)重命名为foldername + extension。
NB。 Z可以是本地驱动器或网络驱动器(即,如果文件夹位于文件服务器地图网络驱动器上)。
例如来自shell ...
python renamer.py "Z:\\FolderCollectionInHere" blah.txt csv
...将“Z:\ FolderCollectionHere”的每个直接子目录中的文件'blah.txt'重命名为.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)