小编Ofe*_*dan的帖子

python 中人类可读的字节大小

我们如何在 python 中显示人类可读的字节大小?

我们需要转换大量不可读的int结果,例如os.stat(r'C:\1.pdf').st_size

(下面用 3.6 以上的 python 版本的 f-strings 回答我自己的问题,如果它们适用于其他 python 版本或其他格式化方式,请添加您自己的答案)

python human-readable python-3.x python-3.6 f-string

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

忽略一个文件中的“未使用的导入语句”(PyCharm)

我有一个项目,其中从文件导入多个文件common.py,因为它们都使用相同的模块/包,并且我想要统一性,并且更容易在一个地方更改值或包。

common.py看起来像这样(只是更长):

import json
import os
import sys
from datetime import datetime
from pathlib import Path
from pprint import pprint
from time import sleep

import requests
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
from pdir.api import PrettyDir

# AND MUCH MORE... with other common functions and classes
Run Code Online (Sandbox Code Playgroud)

项目中的所有其他文件均以以下开头:

from common import *
Run Code Online (Sandbox Code Playgroud)

一切正常。但由于某些导入本身并未使用common.py,PyCharm 无法看到它们在其他模块中使用,并将它们标记为“未使用的导入语句”。

我不想让整个项目的检查保持沉默,因为它在其他地方非常有用。有没有办法强制 PyCharm 检查导入是否在项目的其他地方使用,或者只是静默仅对该文件的检查?

python pycharm

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

即使返回值不是 None,为什么也会打印 None (仅在 else 条件下发生)

def armstrong(x):
    number = str(x)
    length = len(number)
    sum=0
    for i in number:
        sum = sum + pow(int(i),length)

    print("Yes {0} is an Armstrong Number" .format(x) if(sum==x) else print("No {0} is not an Armstrong Number" .format(x)))   

    return 0


num=int(input("Enter a Number: "))
armstrong(num) 
Run Code Online (Sandbox Code Playgroud)

对于非阿姆斯特朗数字,输出带有“无”,有人可以解释其背后的原因吗?我已将输出附加为相同的图像链接。

日志

python

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

忽略或重置日期时间秒和微秒

当我执行datetime.now()获取当前时间时,它会被打印(带有print),如下所示:

2018-06-14 13:21:02.331933

我想忽略秒和微秒并将其打印出来,如下所示:

2018-06-14 13:21:00

我知道我可以转换为我选择的字符串,strftime但我不想更改字符串,而是更改datetime对象本身,使其具有 0 秒和 0 毫秒(并且strftime立即strptime转换回来似乎很愚蠢)。

换句话说,从 转换datetime(2018, 6, 14, 14, 7, 27, 326853)datetime(2018, 6, 14, 14, 7)

我尝试过这样的:

now = datetime.now()
now = now - timedelta(seconds=now.second, microseconds=now.microsecond)
Run Code Online (Sandbox Code Playgroud)

这可行,但我确信有一种更简单、更有效的方法(在迭代不同文件时我需要执行数千次)。所以我的问题是我是否正确,有一种更简单的方法,如果是的话,您对此类问题的解决方案是什么?

python datetime python-3.x

-1
推荐指数
1
解决办法
812
查看次数

如何使用2个具有相同范围的变量进行for循环?

i = xCoordinate
s = yCoordinate
for i, s in range(5):
        pyautogui.moveTo(i, s)
Run Code Online (Sandbox Code Playgroud)

错误:

for i, s in range(5):
TypeError: cannot unpack non-iterable int object
Run Code Online (Sandbox Code Playgroud)

python

-1
推荐指数
1
解决办法
63
查看次数

检查变量是否是类型的实例或无

我有一个可以是int或None的变量.如果是别的我提出错误.

我有以下代码:

if not isinstance(id, int) or id is not None:
    raise AttributeError('must be called with a id of type INT or NONE')
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为每个条件都否定了另一个条件并且总是会引发错误;

python python-3.x python-3.5 python-3.6

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