|
1 | 1 | import requests
|
| 2 | +import wave |
2 | 3 |
|
3 | 4 |
|
4 | 5 | def main():
|
5 | 6 | seed = "http://www.pythonchallenge.com/pc/hex/"
|
6 | 7 | file_path = "lake/"
|
7 |
| - first_step(seed, file_path) |
| 8 | + auth = ("butter", "fly") |
| 9 | + # first_step(seed, file_path, auth) |
| 10 | + bs = second_step() |
| 11 | + third_step(bs) |
8 | 12 |
|
9 | 13 |
|
10 |
| -def first_step(seed, file_path): |
11 |
| - for i in range(2, 26): |
12 |
| - url = seed + str(i) + ".wav" |
| 14 | +def first_step(seed, file_path, auth): |
| 15 | + for i in range(1, 26): |
| 16 | + url = seed + "lake" + str(i) + ".wav" |
13 | 17 | file_name = file_path + str(i) + ".wav"
|
14 |
| - download_a_file(url, file_name) |
| 18 | + download_a_file(url, file_name, auth) |
15 | 19 |
|
16 | 20 |
|
17 |
| -def download_a_file(url, file_name): |
18 |
| - res = requests.get(url) |
| 21 | +def download_a_file(url, file_name, auth): |
| 22 | + res = requests.get(url, auth=auth) |
19 | 23 | bs = res.content
|
20 | 24 | file = open(file_name, "wb")
|
21 | 25 | file.write(bs)
|
22 | 26 | print("Download {}".format(file_name))
|
23 | 27 |
|
24 | 28 |
|
| 29 | +def second_step(): |
| 30 | + bsAry = [] |
| 31 | + for i in range(1, 26): |
| 32 | + lake = wave.open("lake/{}.wav".format(i), "rb") |
| 33 | + bs = lake.readframes(lake.getnframes()) |
| 34 | + print(bs) |
| 35 | + bsAry.append(bs) |
| 36 | + lake.close() |
| 37 | + return bsAry |
| 38 | + |
| 39 | + |
| 40 | +def third_step(bs): |
| 41 | + result_file = wave.open("lake/result.wav", "wb") |
| 42 | + src_file = wave.open("lake/1.wav", "rb") |
| 43 | + nframes = src_file.getnframes() |
| 44 | + result_file.setnchannels(src_file.getnchannels()) |
| 45 | + result_file.setsampwidth(src_file.getsampwidth()) |
| 46 | + result_file.setframerate(src_file.getframerate()) |
| 47 | + result_file.setnframes(nframes * 25) |
| 48 | + for i in range(len(bs)): |
| 49 | + b = bs[i] |
| 50 | + result_file.writeframesraw(b) |
| 51 | + src_file.close() |
| 52 | + result_file.close() |
| 53 | + print("Done") |
| 54 | + |
| 55 | + |
25 | 56 | if __name__ == "__main__":
|
26 | 57 | main()
|
0 commit comments