小编use*_*957的帖子

如何在Python中将datetime.timedelta转换为分钟,小时?

我得到一个这样的start_date:

from django.utils.timezone import utc
import datetime

start_date = datetime.datetime.utcnow().replace(tzinfo=utc)
end_date = datetime.datetime.utcnow().replace(tzinfo=utc)
duration = end_date - start_date
Run Code Online (Sandbox Code Playgroud)

我得到这样的输出:

datetime.timedelta(0, 5, 41038)
Run Code Online (Sandbox Code Playgroud)

如何将此转换为正常时间,如下所示?

这样10分钟,1小时

python django

43
推荐指数
4
解决办法
11万
查看次数

如何从Django中的queryset获取特定属性?

我有这样的查询:

file_s = Share.objects.filter(shared_user_id=log_id)
Run Code Online (Sandbox Code Playgroud)

现在,我想从Django视图中的file_s获取files_id属性.我怎样才能做到这一点?

django

41
推荐指数
2
解决办法
6万
查看次数

正则表达式中的(\ d +)/(\ d +)是什么?

我知道这是一个正则表达式.我在一段代码中看到了这个特殊的正则表达式.它有什么作用?谢谢

regex

17
推荐指数
2
解决办法
6万
查看次数

Popen.returncode无法在Python中运行?

我有一个代码的价格,将文件从服务器传输到本地机器.但是,用户输入的目录可能并不总是正确的.如果用户输入错误的目录,我试图显示错误.如果returncode不是None,我将显示错误.但这不起作用.无论程序抛出什么,它总是会else分开.

#!/usr/bin/python

import subprocess



result = subprocess.Popen(['sshpass', '-p', 'password', 'rsync', '-avz', '--info=progress2', 'username@host_name:/file_name', '/home/zurelsoft/test'], 
                                    stdout=subprocess.PIPE)

if result.returncode != None:
    print "Directory Incorrect"

else:
    print "Done"
    print result
Run Code Online (Sandbox Code Playgroud)

python

7
推荐指数
1
解决办法
8882
查看次数

如何在Python中编写轮询函数?

我正在尝试编写一个每1分钟读取一次变量的函数,并返回每次的值.变量名是proc:

proc = subprocess.Popen(['sshpass', '-p', password, 'rsync', '-avz', '--info=progress2', source12, destination], 
                                    stderr=subprocess.PIPE, stdout=subprocess.PIPE).communicate()[0]
Run Code Online (Sandbox Code Playgroud)

进度存储在proc变量中.我希望函数每1分钟轮询一次变量并返回值.这样做直到变量执行时为止.最好的方法是什么?

尝试使用:

def doWork():
    while True:
        proc = subprocess.Popen(['sshpass', '-p', password, 'rsync', '-avz', '--info=progress2', source12, destination], 
                                    stderr=subprocess.PIPE, stdout=subprocess.PIPE).communicate()[0]stdout=subprocess.PIPE).communicate()[0]
        data = sort(proc)
        print data 
        time.sleep(10)
Run Code Online (Sandbox Code Playgroud)

虽然没有运气!它同时打印整个进度并循环.

python polling

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

(1242,Djquo中的'子查询返回超过1行')错误?

我在Django中有这样的模型:

class File(models.Model):
    users = models.ForeignKey(User)
    file_name = models.CharField(max_length=100)
    type = models.CharField(max_length=10)
    source = models.CharField(max_length=100)
    start_date = models.TextField()
    end_date = models.TextField()
    duration = models.TextField()
    size = models.TextField()
    flag = models.TextField()
    #delete_date = models.CharField(max_length=100, null=True, blank=True)

class Share(models.Model):
    users = models.ForeignKey(User)
    files = models.ForeignKey(File)
    shared_user_id = models.IntegerField()
    shared_date = models.TextField()
Run Code Online (Sandbox Code Playgroud)

我正在尝试提取登录用户共享的文件.我只是在Share中查询

file_s = Share.objects.filter(users_id=log_id)
Run Code Online (Sandbox Code Playgroud)

这将提取登录用户共享的文件.因为,现在我知道登录用户共享了哪个文件,我试图从文件表中获取文件信息:

shared_file = File.objects.filter(users_id=file_s)
Run Code Online (Sandbox Code Playgroud)

但这是回归:

DatabaseError at /shared_by_me/
(1242, 'Subquery returns more than 1 row')

#my_views
def shared_by_me(request):
    log_id = request.user.id
    username = request.user.username
    #shared_file = File.objects.filter(users_id=file) …
Run Code Online (Sandbox Code Playgroud)

database django

6
推荐指数
1
解决办法
4652
查看次数

Fetchall在Python中只返回一列?

我有一个像这样的代码:

db = MySQLdb.connect(user='root', db='galaxy', passwd='devil', host='localhost')
cursor = db.cursor()
cursor.execute('SELECT username, password FROM galaxy_user')
names = [row[0] for row in cursor.fetchall()]
passw = [password[1] for password in cursor.fetchall()]
db.close()
Run Code Online (Sandbox Code Playgroud)

问题是我只能从以下代码访问名称或密码.有了这个,我只能得到用户名.我得到了passw的空列表.现在,如果我切换它:

passw = [row[1] for row in cursor.fetchall()]
names = [password[1] for password in cursor.fetchall()
Run Code Online (Sandbox Code Playgroud)

我得到了passw的值,但名字是空列表.发生了什么?

python mysql-python

5
推荐指数
1
解决办法
4666
查看次数

如何在Python中加入这两个列表以形成路径?

我有一个这样的列表:

remote =  ['django', 'django/genelaytics', 'django/genelaytics/manage.py', 'django/genelaytics/rsync/rsync-HEAD-20121003-2147GMT']
Run Code Online (Sandbox Code Playgroud)

我发现每个列表的父目录使用for循环如下:

for i in remote:
    os.path.dirname(i)
Run Code Online (Sandbox Code Playgroud)

我有另一个列表,我从用户选择中获得(仅包括文件名),如下所示:

choices = ['django', 'genelaytics', 'manage.py']
Run Code Online (Sandbox Code Playgroud)

要处理这个列表,我将需要使用for loop我上面提到的父目录.如何使用这两个列表来获取每个文件的完整路径并进行处理?

django/genelaytics
Run Code Online (Sandbox Code Playgroud)

编辑:列表可能并不总是从顶层开始.顶层也可能不总是相同.这就是我想找出每个文件的完整父目录的原因.例如:

    django
    genelaytics
    .project
    .pydevproject
    manage.py
    fileupload
    __init__.py
    __init__.pyc
    form.html~
    form
    forms.py
    forms.pyc
    models.py
    models.pyc
Run Code Online (Sandbox Code Playgroud)

该列表可能包含manage.py和forms.py.The full path for manage.py may be: django/genelaytics/manage.py and for forms.py django/genelaytics/forms/forms.py.它实际上是一个树形结构.也是django/genalaytics动态生成的,并且对每个用户都不同.所以,它不能是静态的.

python list

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

'return'关键字只返回循环中的一个元素?

我有一个简单的函数来读取csv文件并从中提取第一个coloum:

import csv 

def pass_username():
    with open('test.csv', 'r') as csvfile:
        spamreader = csv.reader(csvfile, delimiter=',')
        for row in spamreader:
            return row[0]
Run Code Online (Sandbox Code Playgroud)

当我将此函数称为:

a = pass_username()
print a 
Run Code Online (Sandbox Code Playgroud)

这只打印第一个元素.但是,当我return用printas 替换word print row[0]并调用函数时,pass_username()它会打印所有元素.我想将该函数分配给变量,因此我想使用return.怎么解决?

test.csv的内容:

"test@gmail.com","rockon"
"hello@gmail.com","hey"
"hithere@gmail.com","ok"
"hellosir@gmail.com","password"
Run Code Online (Sandbox Code Playgroud)

python return

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

如何查找用户是否输入了主机名或IP地址?

用户将输入主机名或IP地址.如果用户输入IP地址,我想保持原样,但如果用户输入主机名,我想使用以下方法将其转换为IP地址:

def convert(hostname):
    command = subprocess.Popen(['host', hostname],
                           stdout=subprocess.PIPE).communicate()[0]

    progress1 = re.findall(r'\d+.', command)
    progress1 = ''.join(progress1)
    return progress1 
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

python

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

标签 统计

python ×7

django ×3

database ×1

list ×1

mysql-python ×1

polling ×1

regex ×1

return ×1