我有一个简单的函数来检查程序是否正在运行并根据需要返回一个布尔值。它通过ps -A使用模块检查命令的输出来做到这一点subprocess。我试图让这个函数在 Python 2 和 Python 3 中都能工作,但遇到以下错误:
TypeError: a bytes-like object is required, not 'str'
Run Code Online (Sandbox Code Playgroud)
应如何函数变化,从而它可以工作既Python 2和Python 3的?
import subprocess
def running(program):
results = subprocess.Popen(
["ps", "-A"],
stdout = subprocess.PIPE
).communicate()[0].split("\n")
matches_current = [
line for line in results if program in line and "defunct" not in line
]
if matches_current:
return True
else:
return False
Run Code Online (Sandbox Code Playgroud)
编辑:按照@Josh 的一些指导,我已将换行符字符串分隔符更改为字节码,但是我仍然遇到类似的问题:
>>> import subprocess
>>> def running(program):
... results = subprocess.Popen(
... ["ps", "-A"],
... stdout …Run Code Online (Sandbox Code Playgroud) 我有一个简单的数据帧,其中记录了一组datetime设置为索引的值。是否有一些紧凑的方法来绘制一周中各天的数据?我的意思是如下所示,水平轴上是一周中的几天,不同周的数据以不同颜色绘制:

我当前的代码如下,但对于概念上简单的事情来说,它似乎很复杂:
df["weekday"] = df["datetime"].dt.weekday
df["weekday_name"] = df["datetime"].dt.weekday_name
df["time_through_day"] = df["datetime"].map(lambda x: x - datetime.datetime.combine(x.date(), datetime.time()))
def days_through_week(row):
return row["weekday"] + row["time_through_day"] / (24 * np.timedelta64(1, "h"))
df["days_through_week"] = df.apply(lambda row: days_through_week(row), axis = 1)
datasets = []
dataset = []
previous_days_through_week = 0
for days_through_week, value in zip(df["days_through_week"], df["value"]):
if abs(days_through_week - previous_days_through_week) < 5:
dataset.append([days_through_week, value])
else:
datasets.append(dataset)
dataset = []
previous_days_through_week = days_through_week
for dataset in datasets:
x = [datum[0] for datum in dataset]
y …Run Code Online (Sandbox Code Playgroud) 我希望 npyscreen 应用程序中某些小部件的高度随着终端大小的调整而调整。

具体来说,我希望在调整终端大小时,这两个列小部件继续占据终端高度的大约相同部分,而底部的行小部件在调整终端大小时保留在终端的底部。
我已经有一些东西可以工作,但是当终端调整大小时,整体渲染会出现问题,就像小部件不知道我希望它们在哪里绘制一样。可能出了什么问题?这应该如何正确完成?
import curses
import sys
import npyscreen
npyscreen.disableColor()
def main():
app = App()
app.run()
class App(npyscreen.NPSApp):
def main(self):
form = npyscreen.FormBaseNew(name = "COMMUNICATIONS")
column_height = terminal_dimensions()[0] - 9
widget_contacts = form.add(
Column,
name = "CONTACTS",
relx = 2,
rely = 2,
max_width = 20,
max_height = column_height
)
widget_messages = form.add(
Column,
name = "MESSAGES",
relx = 23,
rely = 2,
max_height = column_height
)
widget_input = form.add(
npyscreen.BoxTitle,
name = "INPUT",
max_height = 5
) …Run Code Online (Sandbox Code Playgroud) Jupyter 小部件,如 HTML 进度条,会在笔记本浏览器窗口刷新时(或远程重新连接到笔记本时)消失。我正在尝试查看如何在刷新窗口时使它们持久化并重新呈现。
假设我为 Jupyter 设置了这样的小部件:
jupyter nbextension enable --py widgetsnbextension
Run Code Online (Sandbox Code Playgroud)
然后我启动一个这样的笔记本:
import time
import ipykernel
import ipywidgets
import IPython
import jupyter
import notebook
import tqdm
import tqdm.notebook
import widgetsnbextension
print('ipykernel version: ', ipykernel.__version__)
print('ipywidgets version: ', ipywidgets.__version__)
print('IPython version: ', IPython.__version__)
print('Jupyter version: ', jupyter.__version__)
print('Jupyter notebook version: ', notebook.__version__)
print('tqdm version: ', tqdm.__version__)
print('widgetsnbextension version: ', widgetsnbextension.__version__)
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到的版本打印如下:
ipykernel version: 5.1.3
ipywidgets version: 7.5.1
IPython version: 7.9.0
Jupyter version: 1.0.0
Jupyter notebook version: 6.0.2
tqdm version: 4.40.0 …Run Code Online (Sandbox Code Playgroud) 这是一个简单的人体工程学问题。编辑器Geany中有一个选项可以使用户滚动显示的最后一行。例如,这允许用户在垂直方向的显示器上将最后一行代码提升到与视线相同的高度。
如何在Jupyter笔记本中执行类似的操作?我不希望我的头一直向下。如何滚动到最后一个单元格?
我希望结果在某种程度上可以与使用Chromium扩展“ 更多页面空间”相媲美。
我正在创建一个较大的散点矩阵,并希望更改文本,使其整齐,对齐,不重叠等。为此,我想探索减小字体大小并更改文本旋转(以及其他合理的方法) 。我该怎么办?


以下尝试不起作用:
scatter_matrix = pd.scatter_matrix(
data,
figsize = [15, 15],
marker = ".",
s = 0.2,
diagonal = "kde"
)
plt.xticks(fontsize = 2, rotation = -90)
plt.yticks(fontsize = 2)
plt.savefig("scatter_matrix.jpg", dpi = 700)
Run Code Online (Sandbox Code Playgroud) 这可能是一个愚蠢的问题,但鉴于其关键字,很难搜索.我今天看了一些C++代码,看到一些东西按照以下方式在函数顶部声明:
declare(some stuff);
Run Code Online (Sandbox Code Playgroud)
什么时候在C++中使用?
我有一个带有 DatetimeIndex 的 pandas DataFrame 和我想要标准化的列(重新缩放到 -1 和 1 之间)。当我尝试执行此操作时,遇到错误unhashable type: 'Index'。可能出了什么问题以及我该如何处理?
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df[[df.columns]] = scaler.fit_transform(df[[df.columns]])
Run Code Online (Sandbox Code Playgroud) 我想要一个简单的小 Flask 网站,返回robots.txt. 这是我到目前为止所拥有的:
from flask import Flask
app = Flask(__name__)
app.run(host = "0.0.0.0", port = 80)
@app.route("/robots.txt")
def robots_dot_txt():
return "User-agent: *\nDisallow: /"
Run Code Online (Sandbox Code Playgroud)
当我尝试访问它时,我收到 404:
213.152.161.130 - -[31/Mar/2018 21:35:01] "GET /robots.txt HTTP/1.1" 404 -
Run Code Online (Sandbox Code Playgroud) python ×5
pandas ×3
matplotlib ×2
c++ ×1
curses ×1
dataframe ×1
datetime ×1
declaration ×1
flask ×1
geany ×1
ipython ×1
ipywidgets ×1
jupyter ×1
npyscreen ×1
python-3.x ×1
scatter ×1
string ×1
subprocess ×1
tqdm ×1
unicode ×1
weekday ×1
widget ×1