在FTP服务器上使用.ftplib和python将数字(var)写入.txt
我有一个脚本,它将一个数字(在本例中为“9”)放入一个var,并将其保存为一个.txt文件。现在我想把这个数字自动存储在FTP服务器上的.txt文件中 连接到FTP工作,我设法创建了“lifetime_wins.txt”文件。 但是里面什么都没有 我想将“headers”变量的数据存储在txt中。 有人能帮忙吗?我不太擅长python:x 代码:在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
导入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")