月別アーカイブ: 2020年2月

python ftp text読み込み

python ftp text読み込みを作ってみる

x-serverで、フォルダーpublic_html/xxxx/data/にある
*.json
を取得

直接ファイルに落とす場合

from ftplib import FTP
import glob

ftp = FTP(
    "sv22xx.xserver.jp",
    "aaa@xxxx.xsrv.jp",
    passwd="xxxx"
)

def mid(text, n, m):
  return text[n-1:n+m-1]

items = ftp.nlst('/xxxx.xsrv.jp/public_html/xxxx/data/*.json')
print(items)
for row in items:
#                f.write(row + '\n') # 標準出力に惑わされないようファイルにも出力
    st1 = mid(row, len("/xxxx.xsrv.jp/public_html/xxxx/data/")+1 , len(row)-len("/xxxx.xsrv.jp/public_html/xxxx/data/") )
    print(st1)
    print(row)
    with open("data2/"+st1, "w") as f:
        ftp.retrlines("RETR "+row, f.write)

# フォルダー内のファイル一覧表示
filelist=glob.glob('data2/*.json')
print (filelist)
for file in filelist:
    print(file)

ファイルにおとさずに、変数に取り込む場合
参考

python – FTPでのファイル取得

from ftplib import FTP
import glob

ftp = FTP(
    "sv22xx.xserver.jp",
    "aaa@xxxx.xsrv.jp",
    passwd="xxxx"
)

def mid(text, n, m):
  return text[n-1:n+m-1]

items = ftp.nlst('/xxxx.xsrv.jp/public_html/xxxx/data/*.json')
print(items)
for row in items:
    st1 = mid(row, len("/xxxx.xsrv.jp/public_html/xxxx/data/")+1 , len(row)-len("/xxxx.xsrv.jp/public_html/xxxx/data/") )
    print(st1)
    print(row)
    ret = list()
    with open("data2/"+st1, "w") as f:
        #retに読み込んだ内容を追加
        ftp.retrlines("RETR "+row, ret.append)
    for line in ret:
        print(line)