我知道这个问题在本网站上被多次询问.但是我发现他们错过了一个重要的观点:只考虑了一个周期的文件扩展名*.png *.mp3,但是如何用两个周期来处理这些文件名.tar.gz.
基本代码是:
filename = '/home/lancaster/Downloads/a.ppt'
extention = filename.split('/')[-1]
Run Code Online (Sandbox Code Playgroud)
但很明显,这段代码不能像文件一样工作a.tar.gz.怎么处理呢?谢谢.
例如,我想检查元组(1, 2)中的每个元素都在元组中(1, 2, 3, 4, 5).我不认为使用循环是一种很好的方法,我认为它可以在一行中完成.
我正在研究一种算法。但是作者提供的haskell代码我不是很清楚,所以我需要你们的帮助。我认为代码可以分为两部分。
> type LFT = (Integer, Integer, Integer, Integer)
>
> extr :: LFT -> Integer -> Rational
> extr (q,r,s,t) x = ((fromInteger q) * x + (fromInteger r)) / ((fromInteger s) * x + (fromInteger t))
>
> unit :: LFT
> unit = (1,0,0,1)
>
> comp :: LFT -> LFT -> LFT
> comp (q,r,s,t) (u,v,w,x) = (q*u+r*w,q*v+r*x,s*u+t*w,s*v+t*x)
Run Code Online (Sandbox Code Playgroud)
这里,很明显,一个叫做LFT的类型(可能是Python中的元组)和三个叫做的函数extr unit comp被定义了。 然而,接下来的部分让我很困惑:
> pi = stream next safe prod cons init lfts …Run Code Online (Sandbox Code Playgroud) 这是我做的一个比较。np.argsort在由 1,000,000 个元素组成的 float32 ndarray 上计时。
In [1]: import numpy as np
In [2]: a = np.random.randn(1000000)
In [3]: a = a.astype(np.float32)
In [4]: %timeit np.argsort(a)
86.1 ms ± 1.59 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
Run Code Online (Sandbox Code Playgroud)
这是一个 C++ 程序执行相同的过程,但在引用此答案的向量上。
#include <iostream>
#include <vector>
#include <cstddef>
#include <algorithm>
#include <opencv2/opencv.hpp>
#include <numeric>
#include <utility>
int main()
{
std::vector<float> numbers;
for (int i = 0; i != 1000000; ++i) {
numbers.push_back((float)rand() …Run Code Online (Sandbox Code Playgroud) 我写了一个多线程http下载器,现在它可以比单线程下载器更快地下载文件,并且MD5总和是正确的.但是,我发现它显示的速度是如此之快,以至于我不相信它是真正的价值.
单元尚未打印,但我确定它是KB/s,请查看我的代码有关该措施.
# Setup the slaver
def _download(self):
# Start download partital content when queue not empty
while not self.configer.down_queue.empty():
data_range = self.configer.down_queue.get()
headers = {
'Range': 'bytes={}-{}'.format(*data_range)
}
response = requests.get(
self.configer.url, stream = True,
headers = headers
)
start_point = data_range[0]
for bunch in response.iter_content(self.block_size):
_time = time.time()
with self.file_lock:
with open(
self.configer.path, 'r+b',
buffering = 1
) as f:
f.seek(start_point)
f.write(bunch)
f.flush()
start_point += self.block_size
self.worker_com.put((
threading.current_thread().name,
int(self.block_size / (time.time() - _time))
))
self.configer.down_queue.task_done()
# speed monitor …Run Code Online (Sandbox Code Playgroud) 我想将字幕文件(.srt)刻录到mp4视频.我的命令是:
ffmpeg -i input.mp4 -c:v mpeg4 -q:v 1 -vf subtitles=input.srt out.mp4
它输出质量好的视频,但其大小为1.12GB,而输入文件为213MB.
我认为问题是kbps的输出文件太高.输入文件的比特率是568 kb/s但输出文件是3154 kb/s.
所以我想设置kps,现在这里是我的代码:
ffmpeg -i input.mp4 -b:v 569k -minrate 568k -maxrate 570k -c:v mpeg4 -q:v 1 -vf subtitles=input.srt out.mp4
Run Code Online (Sandbox Code Playgroud)
虽然输出文件变小(538MB),但视频的质量很糟糕(与输入文件比较)......那么如何使输出文件更小,质量更好?谢谢.
我想刻录 .mp4 视频的字幕文件(.srt),这是我的命令:
ffmpeg -i my.mp4 -c:v mpeg4 -q:v 1 -vf subtitles=my.srt new.mp4
Run Code Online (Sandbox Code Playgroud)
这张图片中不是很清楚,但是当我玩它时,我确定它们的大小不同。