使用 Paramiko SFTP 客户端搜索和替换文件
Search and replace on a file using Paramiko SFTP client
我在 SFTP 服务器上有一个文件,我可以连接到该服务器以打开和写入。但是我需要搜索一段文本并将其替换为另一段。这可能使用 Paramiko SFTP 吗?
我的代码是这样的
for filename in s.sftp.listdir():
file = sftp.open(filename,'ar+')
line = file.readable()
file = file.write("Test Test Test")
file = sftp.close()
我曾尝试使用 sftp.replace() 但是当我 运行 它时我收到以下错误
file = s.sftp.replace("15062018", "11092018")
AttributeError: 'SFTPClient' object has no attribute 'replace'
第一个日期是文件中的当前日期,第二个日期是我要替换的日期。
的确,Paramiko中没有SFTPClient.replace
。
您必须将文件内容读入变量,执行替换,然后写回。
for filename in sftp.listdir():
with sftp.open(filename, 'r+') as file:
contents = file.read()
contents = contents.replace("15062018", "11092018")
file.seek(0)
file.write(contents)
显然这对于大文件来说效率很低。此外,如果替换字符串比原始字符串短(不是这种情况),您需要在写回内容后截断文件。
我在 SFTP 服务器上有一个文件,我可以连接到该服务器以打开和写入。但是我需要搜索一段文本并将其替换为另一段。这可能使用 Paramiko SFTP 吗?
我的代码是这样的
for filename in s.sftp.listdir():
file = sftp.open(filename,'ar+')
line = file.readable()
file = file.write("Test Test Test")
file = sftp.close()
我曾尝试使用 sftp.replace() 但是当我 运行 它时我收到以下错误
file = s.sftp.replace("15062018", "11092018")
AttributeError: 'SFTPClient' object has no attribute 'replace'
第一个日期是文件中的当前日期,第二个日期是我要替换的日期。
的确,Paramiko中没有SFTPClient.replace
。
您必须将文件内容读入变量,执行替换,然后写回。
for filename in sftp.listdir():
with sftp.open(filename, 'r+') as file:
contents = file.read()
contents = contents.replace("15062018", "11092018")
file.seek(0)
file.write(contents)
显然这对于大文件来说效率很低。此外,如果替换字符串比原始字符串短(不是这种情况),您需要在写回内容后截断文件。