在FTP服务器上使用.ftplib和python将数字(var)写入.txt

在FTP服务器上使用.ftplib和python将数字(var)写入.txt,python,ftp,beautifulsoup,ftplib,Python,Ftp,Beautifulsoup,Ftplib,我有一个脚本,它将一个数字(在本例中为“9”)放入一个var,并将其保存为一个.txt文件。现在我想把这个数字自动存储在FTP服务器上的.txt文件中 连接到FTP工作,我设法创建了“lifetime_wins.txt”文件。 但是里面什么都没有 我想将“headers”变量的数据存储在txt中。 有人能帮忙吗?我不太擅长python:x 代码: 导入bs4 导入时间 def main(): #----基本输入---- #导入bs4和url抓取模块 从urllib.request导入urlope

我有一个脚本,它将一个数字(在本例中为“9”)放入一个var,并将其保存为一个.txt文件。现在我想把这个数字自动存储在FTP服务器上的.txt文件中

连接到FTP工作,我设法创建了“lifetime_wins.txt”文件。 但是里面什么都没有

我想将“headers”变量的数据存储在txt中。 有人能帮忙吗?我不太擅长python:x

代码:

导入bs4
导入时间
def main():
#----基本输入----
#导入bs4和url抓取模块
从urllib.request导入urlopen作为uReq
从urllib.request导入请求,urlopen
从bs4进口美汤作为汤
#将var“url”设置到页面
url='1〕https://fortnitetracker.com/profile/psn/Rehgum'
#uReq的var req和https的Mozilla/解码设置
req=请求(url,标题={'User-Agent':'Mozilla/5.0'})
#解码
web_byte=urlopen(req).read()
网页=网页字节解码('utf-8')
urlopen(req).close()
#html解析
page_soup=soup(网页“html.parser”)
#----分类----
#选择寿命
lifetime=page_soup.findAll(“div”,“class”:“top stats”})
#标题和文件创建
filename=“lifetime\u wins.txt”
f=打开(文件名为“w”)
#将生存期设置为另一个变量(0)
统计数据=生存期[0]
#选择具有正确信息的容器
统计处处长
#设置变量以输入值
值=stats.div.div
#----输出----
输出=值.text
#----打印输出----
打印(“打印:”+输出)
标题=(“#”+输出+”)
f、 写入(标题)
f、 关闭()
#---FTP连接---
从ftplib导入FTP
ftp=ftp('server.1和1 data.host')
ftp.login('user','pw')
ftp.cwd(“/”)
#--将标题写入FTP上的TXT--
def placeFile():
文件名='lifetime_wins.txt'
ftp.storbinary('STOR'+文件名,f.write(标题),open(文件名,'rb'))
f、 关闭()
ftp.quit()
#---------------------------------
#环路
时间。睡眠(30)
main()
对于范围(1,2)内的i:
main()
而i<1:
打印(“Ende”)
编辑:

在将方法从将var存储到文本中改为先存储文件,然后上传文件之后,它就开始工作了。 这篇文章并不是重复的,因为我不想上传一个文件,而是想更改文件的一些内容

工作代码:

import bs4
import time
import ftplib

def main():

    #----INPUT BASIC----

    #import bs4 and url-grabbing-module
    from urllib.request import urlopen as uReq
    from urllib.request import Request, urlopen
    from bs4 import BeautifulSoup as soup

    #setting var "url" to the page
    url = 'https://fortnitetracker.com/profile/psn/Rehgum'

    #var req to uReq and setting Mozilla / decoding for https
    req = Request(url, headers={'User-Agent': 'Mozilla/5.0'})

    #decoding
    web_byte = urlopen(req).read()
    webpage = web_byte.decode('utf-8')
    urlopen(req).close()

    #html parsing
    page_soup = soup(webpage, "html.parser")

    #----SORTING----

    #selecting <div> lifetime
    lifetime = page_soup.findAll("div", {"class": "top-stats"})

    #headers and file creation
    filename = "lifetime_wins.txt"
    f = open(filename, "w")

    #setting lifetime into another var (0)
    stats = lifetime[0]

    #selecting container with the right information
    stats.div.div

    #setting variable to put in the value
    value = stats.div.div

    #----OUTPUT----
    output = value.text

    #----PRINTING OUTPUT----
    print("Lifetime Siege: " + output)
    headers = ("#" + output + " ")
    f.write(headers)
    f.close()

    #---FTP CONNECTION---
    from ftplib import FTP  
    ftp = FTP('SERVER.1and1-data.host')
    ftp.login('USER','PW')
    ftp.cwd('/')

        #--UPLOADING TXT ON FTP--

    file = open('lifetime_wins.txt','rb')
    ftp.storbinary('STOR ' +"lifetime_wins.txt", file)
    file.close() 
    ftp.quit()


#loop
    time.sleep(30)
    main()


for i in range(1, 2):
    main()

while i < 1:
    print("Ende")
导入bs4
导入时间
进口ftplib
def main():
#----基本输入----
#导入bs4和url抓取模块
从urllib.request导入urlopen作为uReq
从urllib.request导入请求,urlopen
从bs4进口美汤作为汤
#将var“url”设置到页面
url='1〕https://fortnitetracker.com/profile/psn/Rehgum'
#uReq的var req和https的Mozilla/解码设置
req=请求(url,标题={'User-Agent':'Mozilla/5.0'})
#解码
web_byte=urlopen(req).read()
网页=网页字节解码('utf-8')
urlopen(req).close()
#html解析
page_soup=soup(网页“html.parser”)
#----分类----
#选择寿命
lifetime=page_soup.findAll(“div”,“class”:“top stats”})
#标题和文件创建
filename=“lifetime\u wins.txt”
f=打开(文件名为“w”)
#将生存期设置为另一个变量(0)
统计数据=生存期[0]
#选择具有正确信息的容器
统计处处长
#设置变量以输入值
值=stats.div.div
#----输出----
输出=值.text
#----打印输出----
打印(“打印:”+输出)
标题=(“#”+输出+”)
f、 写入(标题)
f、 关闭()
#---FTP连接---
从ftplib导入FTP
ftp=ftp('SERVER.1和1 data.host')
ftp.login('USER','PW')
ftp.cwd(“/”)
#--在FTP上上传TXT--
file=open('lifetime\u wins.txt','rb')
ftp.storbinary('STOR'+“lifetime\u wins.txt”,文件)
file.close()文件
ftp.quit()
#环路
时间。睡眠(30)
main()
对于范围(1,2)内的i:
main()
而i<1:
打印(“Ende”)

您对
ftp.storbinary
的调用完全错误。请检查链接问题中的正确参数。谢谢@MartinPrikryl。。我改变了它和方法,我上传的内容从一个值到一个文件。。。现在可以工作了,这样对我来说很酷。我想简化这个过程,这样我就不必先在本地存储文件,然后再上传。。。我想直接将值存储在(ftp生成的).txt文件中,这就是为什么我不认为那篇文章是重复的,但是谢谢你的帮助!我已经添加了其他问题,说明如何从内存上传内容。再次感谢。。。在上面发布了工作代码:)
import bs4
import time
import ftplib

def main():

    #----INPUT BASIC----

    #import bs4 and url-grabbing-module
    from urllib.request import urlopen as uReq
    from urllib.request import Request, urlopen
    from bs4 import BeautifulSoup as soup

    #setting var "url" to the page
    url = 'https://fortnitetracker.com/profile/psn/Rehgum'

    #var req to uReq and setting Mozilla / decoding for https
    req = Request(url, headers={'User-Agent': 'Mozilla/5.0'})

    #decoding
    web_byte = urlopen(req).read()
    webpage = web_byte.decode('utf-8')
    urlopen(req).close()

    #html parsing
    page_soup = soup(webpage, "html.parser")

    #----SORTING----

    #selecting <div> lifetime
    lifetime = page_soup.findAll("div", {"class": "top-stats"})

    #headers and file creation
    filename = "lifetime_wins.txt"
    f = open(filename, "w")

    #setting lifetime into another var (0)
    stats = lifetime[0]

    #selecting container with the right information
    stats.div.div

    #setting variable to put in the value
    value = stats.div.div

    #----OUTPUT----
    output = value.text

    #----PRINTING OUTPUT----
    print("Lifetime Siege: " + output)
    headers = ("#" + output + " ")
    f.write(headers)
    f.close()

    #---FTP CONNECTION---
    from ftplib import FTP  
    ftp = FTP('SERVER.1and1-data.host')
    ftp.login('USER','PW')
    ftp.cwd('/')

        #--UPLOADING TXT ON FTP--

    file = open('lifetime_wins.txt','rb')
    ftp.storbinary('STOR ' +"lifetime_wins.txt", file)
    file.close() 
    ftp.quit()


#loop
    time.sleep(30)
    main()


for i in range(1, 2):
    main()

while i < 1:
    print("Ende")