小编luk*_*awk的帖子

在Python中连接到"TLS上的显式FTP"(??)

我无法弄清楚如何使用ftplib查看FTP站点的文件内容.

我可以使用WinSCP连接到FTP站点,并查看根目录中的6个文件.

在Python 3.4中,我使用以下代码:

        from ftplib import FTP_TLS
        ftps = FTP_TLS(timeout=100)           
        ftps.connect(ipAddress, 21)
        ftps.auth()
        ftps.prot_p()
        ftps.login('username', 'password')
Run Code Online (Sandbox Code Playgroud)

哪个产生:

        Out[72]: '230 User logged in.'
Run Code Online (Sandbox Code Playgroud)

我可以运行这个:

        ftps.pwd()
Run Code Online (Sandbox Code Playgroud)

......我看到我在根目录中:

        Out[73]: '/'
Run Code Online (Sandbox Code Playgroud)

一切似乎都很好吃.但是,当我试图查看目录中的内容,使用ftps.dir()或ftps.retrlines('NLST'),或者我尝试过的任何其他内容时,我得到一个超时:

TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
Run Code Online (Sandbox Code Playgroud)

我搜索过,发现有几个人说这可能是"被动与主动"连接设置问题.然而,我询问了FTP的管理员,如果它是被动的还是主动的,他表示不相信,只是说,"这不是SFTP.它是明确的FTP over TLS !!"

我对这一切都一无所知.我只是想使用ftplib(或任何其他包!)连接到他的FTP并下载一些文件.

我错过了什么?

编辑:我刚想通了WinSCP正在使用被动模式,所以这似乎是有效的.据我了解,默认情况下ftplib是被动的,但我继续将标志设置为true.这没什么,我仍然有同样的问题.

我还检查了我的防火墙(抓住吸管),它完全关闭,所以那里应该没有问题.

我还尝试使用'.sendcmd()'方法发送显式命令,该方法似乎能够发送命令,但不会获取任何响应(或者它无法查看响应).

有什么理由我能够看到我所在的目录,但没有其他任何数据?我显然已经连接并与服务器通信了,看起来这个目录可用并且对我来说是可见的,这意味着数据可以来回传递.数据是否可能以某种方式返回ftplib无法识别?有关我应该从哪里开始进行故障排除的任何想法?

最后,似乎所有内容都设置正确,因为我可以在WinSCP中看到一切正常.我应该检查哪些设置与ftplib进行比较?

编辑2:

根据要求,我设置了调试级别(感谢这个提示),下面是输出:

ftps = FTP_TLS(timeout=15)
ftps.set_debuglevel(2)                   
ftps.connect(ipAddress, 21)
ftps.set_pasv(True) …
Run Code Online (Sandbox Code Playgroud)

python ftp ssl ftplib

3
推荐指数
1
解决办法
2993
查看次数

如何在R中使用str_split和regex?

我有这个字符串:

235072,testing,some252f4,14084-things224072,and,other2524,14084-thingies223552,testing,some/2wr24,14084-things
Run Code Online (Sandbox Code Playgroud)

我想用6位数字分割字符串.即 - 我想要这个:

235072,testing,some2wg2f4,wf484-things
224072,and,other25wg4,14-thingies
223552,testing,some/2wr24,14084-things
Run Code Online (Sandbox Code Playgroud)

我如何使用正则表达式执行此操作?以下不起作用(使用stringr包):

> blahblah <- "235072,testing,some252f4,14084-things224072,and,other2524,14084-thingies223552,testing,some/2wr24,14084-things"
> test <- str_split(blahblah, "([0-9]{6}.*)")
> test
[[1]]
[1] "" ""
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

regex r strsplit stringr

2
推荐指数
1
解决办法
328
查看次数

检查self是否是python中子类的实例

我有一个名为的类A,有两个子类BC.以下是否有意义?或者有更好的方法吗?

class A():
    ...

    def do_stuff(self):
        self.do_this()
        self.do_that()
        if isInstance(self, B):
            self.do_the_b_stuff()
        elif isInstance(self, C):
            self.do_the_c_stuff()
Run Code Online (Sandbox Code Playgroud)

python self isinstance

2
推荐指数
1
解决办法
326
查看次数

ADODB错误:'没有给出一个或多个必需参数的值'

我正在尝试使用ADODB和VBA从另一个excel电子表格中获取一些数据.这是我第一次尝试使用ADODB,我为自己的无知道歉.

这样做可以从工作表中提取所有数据:

rst1.Open "SELECT * FROM [NAVAUM$A1:IU60000];", cnn1, adOpenStatic, adLockReadOnly
Run Code Online (Sandbox Code Playgroud)

这可以获取我想要的字段,但没有字段名称:

rst1.Open "SELECT F2,F3 FROM [NAVAUM$A2:IU60000] WHERE F1 = 'Return' AND F3 LIKE '" & SearchString & "';", cnn1, adOpenStatic, adLockReadOnly
Run Code Online (Sandbox Code Playgroud)

这不起作用

rst1.Open "SELECT F2,F3 FROM [NAVAUM$A1:IU60000] WHERE F1 = 'Return' AND F3 LIKE '" & SearchString & "';", cnn1, adOpenStatic, adLockReadOnly
Run Code Online (Sandbox Code Playgroud)

(不同之处在于包含第1行,其中字段名称为.)

应该注意的是,第2行都是空白的.(这是文件来我的方式,无法更改.)我该如何解决这个问题?

编辑:我知道了!

我没有更改查询以反映我实际上现在有字段名称的事实.因此,F2和F3成为[基金ID]和[基金名称].我不聪明.

谢谢你把螺丝松开StackOverflow !!

excel vba adodb

0
推荐指数
1
解决办法
9929
查看次数

标签 统计

python ×2

adodb ×1

excel ×1

ftp ×1

ftplib ×1

isinstance ×1

r ×1

regex ×1

self ×1

ssl ×1

stringr ×1

strsplit ×1

vba ×1