小编ham*_*mus的帖子

带有多条记录的MySQL"SELECT LIMIT 1"是否从顶部选择第一条记录?

我搜索并搜索过,找不到这个问题的答案,我可能会以错误的方式提问.

我正在查询员工数据库.

我需要根据职位ID获取详细信息,但是该职位ID可能有多个记录,因为该组织有永久员工和临时员工,他们的职位相同.

因此,为了获得位置id的CURRENT占用者,我需要查询从TOP DOWN中选择匹配位置字符串的FIRST记录.

这将从顶部选择第一个匹配的记录吗?

SELECT * WHERE `position_id`="00000000" LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

提前致谢.

mysql select limit

13
推荐指数
1
解决办法
9万
查看次数

Python:ftplib在传输结束时挂起

我一直在搜索这几天,还没有找到答案.

我试图从FTP下载视频文件,我的脚本检查服务器,将nlist()与从文本文件解析的已下载文件列表进行比较,然后创建一个新的文件列表以获取并迭代它下载每个文件文件,断开与服务器的连接并重新连接下一个文件(我认为服务器超时可能是一个问题所以我在每个文件下载后退出()连接).

这适用于前几个文件,但只要我点击一个超过5分钟的文件,fitlib就会在传输结束时挂起(我可以在资源管理器中看到该文件的大小正确,因此下载已经完成但是它似乎没有得到消息并继续下一个文件)

任何帮助将不胜感激,我的代码如下:

newPath = "Z:\\pathto\\downloads\\"

for f in getFiles:
    print("Getting " + f)

for f in getFiles:

    fil = f.rstrip()
    ext = os.path.splitext(fil)[1]
    if ext in validExtensions:
        print("Downloading new file: " + fil)
        downloadFile(fil, newPath)
Run Code Online (Sandbox Code Playgroud)

这是download.py

from ftplib import FTP
def downloadFile(filename, folder):
    myhost = 'host'
    myuser = 'user'
    passw = 'pass'
    #login
    ftp = FTP(myhost,myuser,passw)
    localfile = open(folder + filename, 'wb')
    ftp.retrbinary("RETR " + filename, localfile.write, 1024)
    print("Downloaded " + filename)
    localfile.close()
    ftp.quit()
Run Code Online (Sandbox Code Playgroud)

python hang ftplib

4
推荐指数
1
解决办法
5338
查看次数

Python:参数没有正确传递给命令

几个小时我一直在摸着这个.

我正在尝试编写一个简单的脚本,使用HandbrakeCLI将.AVI格式的旧视频转换为.mp4,我无法让Handbrake注册正确的参数,我不断收到"缺少输出文件名.运行C:/ Program Files /Handbrake/HandbrakeCLI.exe - 帮助获取语法.\ r \n"错误.

这是我到目前为止所拥有的

import glob
import os

import handbrake

hb = handbrake.HandbrakeEncode
mydir = "C:\\Path\\To\\MyVids\\"
os.chdir(mydir)

filesList = []

for files in glob.glob("*.avi"):
    filesList.append(mydir + files)
    print(mydir + files) 
    #this prints the correctly assembled path and file as expected

for files in filesList:
    print("Encoding file: " + files)
    hb(files)
Run Code Online (Sandbox Code Playgroud)

而hb功能是:

def HandbrakeEncode(filepath):
    import subprocess
    import os
    from subprocess import Popen, PIPE
    outputPath, fileExtension = os.path.splitext(filepath)
    outputPath += ".mp4"

    args = '-i ' + …
Run Code Online (Sandbox Code Playgroud)

python subprocess handbrake

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

python ftplib transfercmd() 二进制模式

在没有回答我之前的问题的情况下。

我正在使用多线程通过控制套接字保持大型 FTP 传输。

不幸的是,这需要使用 ftplib.ftp.transfercmd()(而不是不提供显式套接字控制的 FTP.retrbinary()),它以独占方式返回数据套接字并允许您无阻塞地发送“NOOP”命令。

这是一个问题,因为 transfercmd("RETR" ...) 在 ASCII 模式下默认为 dwonloading,这会损坏我尝试下载的视频文件。

我已经搜索了所有我能找到的明确的 BINARY 模式命令,但无济于事。有任何想法吗?

这是我的下载代码

def downloadFile(filename, folder):
    #login
    ftp = FTP(myhost,myuser,passw)
    ftp.set_debuglevel(2)
    sock = ftp.transfercmd('RETR ' + filename)
    def background():
        f = open(folder + filename, 'wb')
        while True:
            block = sock.recv(1024*1024)
            if not block:
                break
            f.write(block)
        sock.close()
    t = threading.Thread(target=background)
    t.start()
    while t.is_alive():
        t.join(60)
        ftp.voidcmd('NOOP')
Run Code Online (Sandbox Code Playgroud)

python sockets ftp multithreading

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

标签 统计

python ×3

ftp ×1

ftplib ×1

handbrake ×1

hang ×1

limit ×1

multithreading ×1

mysql ×1

select ×1

sockets ×1

subprocess ×1