我有一个程序使用logging模块和print语句.例如,日志记录是告知用户程序正在做什么
logging.info("downloading HTML")
time.sleep(1)
logging.info("parsing HTML")
time.sleep(1)
print "the result"
Run Code Online (Sandbox Code Playgroud)
最后屏幕上的输出(混合stdout和stderr)将是:
INFO:downloading HTML
INFO:parsing HTML
the result
Run Code Online (Sandbox Code Playgroud)
我想在显示下一个日志记录输出或调用打印时隐藏最后一个日志记录输出.例如,启动程序,您将看到:
INFO:download HTML
Run Code Online (Sandbox Code Playgroud)
等一下,下一个信息"parsing HTML"将替换上一个"downloading HTML",所以在屏幕上你只会看到:
INFO:parsing HTML
Run Code Online (Sandbox Code Playgroud)
之前别无其他,等一秒,我只想在屏幕上看到:
"the result"
Run Code Online (Sandbox Code Playgroud)
我只想在登录stderr时想要这个功能,而不是在登录文件时,例如,我希望看到所有logging输出.
可能吗?
我正在迭代一个大的csv文件,我想打印出一些进度指示器.据我所知,计算行数需要解析换行符的所有文件.所以我不能轻易估计行号的进度.
还有什么我可以做的,以便在阅读行时估计进度?也许我可以按尺寸去?
所以我有一个需要很长时间才能完成的函数我想知道如何为该函数制作进度条,代码如下所示
def some_function():
#do something
#do something
#do something
print('finished')
Run Code Online (Sandbox Code Playgroud)
输出
[========== ] 40%
[============== ] 60%
[================= ] 80%
finished
[===================] 100%
Run Code Online (Sandbox Code Playgroud)
如果能在同一个地方更新就好了
我正在使用下面的 python 代码从云存储桶下载一个 zip 文件
bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob(source_blob_name)
print('Downloading file')
blob.download_to_filename(destination_file_name)
print('Download completed')
Run Code Online (Sandbox Code Playgroud)
打印“下载文件”行后如何显示进度条
我需要一个 python 中的倒数计时器,但不能跳线。
from time import sleep
for c in range (4,0,-1):
print(c)
sleep(1)
Run Code Online (Sandbox Code Playgroud)
此代码通过跳线进行倒计时,例如:
print('3')
print('2')
print('1')
Run Code Online (Sandbox Code Playgroud)
我需要在同一行中显示前 3,然后是 2,最后是 1。例如:
print('3,' + sleep(1) + '2,' + sleep(1) + '1.')
Run Code Online (Sandbox Code Playgroud) 以下代码我用于并行csv处理:
#!/usr/bin/env python
import csv
from time import sleep
from multiprocessing import Pool
from multiprocessing import cpu_count
from multiprocessing import current_process
from pprint import pprint as pp
def init_worker(x):
sleep(.5)
print "(%s,%s)" % (x[0],x[1])
x.append(int(x[0])**2)
return x
def parallel_csv_processing(inputFile, outputFile, header=["Default", "header", "please", "change"], separator=",", skipRows = 0, cpuCount = 1):
# OPEN FH FOR READING INPUT FILE
inputFH = open(inputFile, "rt")
csvReader = csv.reader(inputFH, delimiter=separator)
# SKIP HEADERS
for skip in xrange(skipRows):
csvReader.next()
# PARALLELIZE COMPUTING INTENSIVE OPERATIONS - …Run Code Online (Sandbox Code Playgroud) python csv parallel-processing multithreading python-multiprocessing
关于此有一些问题,但是我似乎找不到在非迭代函数上执行进度条的问题。下面是合并两个单独的数据帧的函数。我希望将此功能插入显示进度的单独功能中。
from multiprocessing import Pool
import tqdm
import pandas as pd
import numpy as np
df1 = pd.DataFrame(np.random.randint(0,100,size=(100000, 4)), columns=list('ABCD'))
df2 = pd.DataFrame(np.random.randint(0,100,size=(100000, 4)), columns=list('AXYZ'))
def merge_df(df1, df2):
df = pd.merge(left = df1, right = df2, how = 'left',
left_on = 'A', right_on = 'A')
return df
if __name__ == '__main__':
with Pool(2) as p:
r = list(tqdm.tqdm(p.imap(merge_df, df1, df2)))
Run Code Online (Sandbox Code Playgroud)
ValueError:DataFrame的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。