|
1 | 1 | { |
2 | 2 | "metadata": { |
3 | 3 | "name": "", |
4 | | - "signature": "sha256:b8d5bf725bbe6b0e07d0b544cb5a65cdce7b4c162fd421985a4aa25ea57f9151" |
| 4 | + "signature": "sha256:9e62469f6250ac6d58e6d3d2c67a5995d1505778b147ae918d71f4ebc1c12fb6" |
5 | 5 | }, |
6 | 6 | "nbformat": 3, |
7 | 7 | "nbformat_minor": 0, |
|
1270 | 1270 | "import subprocess\n", |
1271 | 1271 | "\n", |
1272 | 1272 | "def subprocess_findcopy(path, search_str, dest): \n", |
1273 | | - " query = 'find %s -name \"%s\" -exec cp {}\" %s \\;' %(path, search_str, dest)\n", |
| 1273 | + " query = 'find %s -name \"%s\" -exec cp {} %s \\;' %(path, search_str, dest)\n", |
1274 | 1274 | " subprocess.call(query, shell=True)\n", |
1275 | 1275 | " return " |
1276 | 1276 | ], |
1277 | 1277 | "language": "python", |
1278 | 1278 | "metadata": {}, |
1279 | 1279 | "outputs": [], |
1280 | | - "prompt_number": 2 |
| 1280 | + "prompt_number": 30 |
1281 | 1281 | }, |
1282 | 1282 | { |
1283 | 1283 | "cell_type": "markdown", |
|
1297 | 1297 | "def walk_findcopy(path, search_str, dest):\n", |
1298 | 1298 | " for path, subdirs, files in os.walk(path):\n", |
1299 | 1299 | " for name in fnmatch.filter(files, search_str):\n", |
1300 | | - " shutil.copy(os.path.join(path,name), dest)" |
| 1300 | + " try:\n", |
| 1301 | + " shutil.copy(os.path.join(path,name), dest)\n", |
| 1302 | + " except NameError:\n", |
| 1303 | + " pass\n", |
| 1304 | + " return" |
1301 | 1305 | ], |
1302 | 1306 | "language": "python", |
1303 | 1307 | "metadata": {}, |
1304 | 1308 | "outputs": [], |
1305 | | - "prompt_number": 3 |
| 1309 | + "prompt_number": 33 |
1306 | 1310 | }, |
1307 | 1311 | { |
1308 | 1312 | "cell_type": "code", |
1309 | 1313 | "collapsed": false, |
1310 | 1314 | "input": [ |
1311 | 1315 | "import timeit\n", |
1312 | 1316 | "\n", |
| 1317 | + "\n", |
| 1318 | + "def findcopy_timeit(inpath, outpath, search_str):\n", |
| 1319 | + " \n", |
| 1320 | + " shutil.rmtree(outpath)\n", |
| 1321 | + " os.mkdir(outpath)\n", |
| 1322 | + " print(50*'#')\n", |
| 1323 | + " print('subprocsess call')\n", |
| 1324 | + " %timeit subprocess_findcopy(inpath, search_str, outpath)\n", |
| 1325 | + " print(\"copied %s files\" %len(os.listdir(outpath)))\n", |
| 1326 | + " shutil.rmtree(outpath)\n", |
| 1327 | + " os.mkdir(outpath)\n", |
| 1328 | + " print('\\nos.walk approach')\n", |
| 1329 | + " %timeit walk_findcopy(inpath, search_str, outpath)\n", |
| 1330 | + " print(\"copied %s files\" %len(os.listdir(outpath)))\n", |
| 1331 | + " print(50*'#')\n", |
| 1332 | + "\n", |
1313 | 1333 | "print('small tree')\n", |
1314 | 1334 | "inpath = '/Users/sebastian/Desktop/testdir_in'\n", |
1315 | 1335 | "outpath = '/Users/sebastian/Desktop/testdir_out'\n", |
1316 | | - "searchstr = '*.png'\n", |
1317 | | - "%timeit subprocess_findcopy(inpath, searchstr, outpath)\n", |
1318 | | - "%timeit walk_findcopy(inpath, searchstr, outpath)\n", |
| 1336 | + "search_str = '*.png'\n", |
| 1337 | + "findcopy_timeit(inpath, outpath, search_str)\n", |
1319 | 1338 | "\n", |
1320 | | - "print('\\nlarger tree')\n", |
| 1339 | + "print('larger tree')\n", |
1321 | 1340 | "inpath = '/Users/sebastian/Dropbox'\n", |
1322 | 1341 | "outpath = '/Users/sebastian/Desktop/testdir_out'\n", |
1323 | | - "searchstr = '*.csv'\n", |
1324 | | - "%timeit subprocess_findcopy(inpath, searchstr, outpath)\n", |
1325 | | - "%timeit walk_findcopy(inpath, searchstr, outpath)" |
| 1342 | + "search_str = '*.csv'\n", |
| 1343 | + "findcopy_timeit(inpath, outpath, search_str)\n" |
1326 | 1344 | ], |
1327 | 1345 | "language": "python", |
1328 | 1346 | "metadata": {}, |
|
1332 | 1350 | "stream": "stdout", |
1333 | 1351 | "text": [ |
1334 | 1352 | "small tree\n", |
1335 | | - "100 loops, best of 3: 8.48 ms per loop" |
| 1353 | + "##################################################" |
1336 | 1354 | ] |
1337 | 1355 | }, |
1338 | 1356 | { |
1339 | 1357 | "output_type": "stream", |
1340 | 1358 | "stream": "stdout", |
1341 | 1359 | "text": [ |
1342 | 1360 | "\n", |
1343 | | - "100 loops, best of 3: 22.3 ms per loop" |
| 1361 | + "subprocsess call\n", |
| 1362 | + "1 loops, best of 3: 268 ms per loop" |
1344 | 1363 | ] |
1345 | 1364 | }, |
1346 | 1365 | { |
1347 | 1366 | "output_type": "stream", |
1348 | 1367 | "stream": "stdout", |
1349 | 1368 | "text": [ |
1350 | 1369 | "\n", |
| 1370 | + "copied 13 files\n", |
| 1371 | + "\n", |
| 1372 | + "os.walk approach\n", |
| 1373 | + "100 loops, best of 3: 12.2 ms per loop" |
| 1374 | + ] |
| 1375 | + }, |
| 1376 | + { |
| 1377 | + "output_type": "stream", |
| 1378 | + "stream": "stdout", |
| 1379 | + "text": [ |
1351 | 1380 | "\n", |
| 1381 | + "copied 13 files\n", |
| 1382 | + "##################################################\n", |
1352 | 1383 | "larger tree\n", |
1353 | | - "10 loops, best of 3: 7.13 ms per loop" |
| 1384 | + "##################################################\n", |
| 1385 | + "subprocsess call\n", |
| 1386 | + "1 loops, best of 3: 623 ms per loop" |
1354 | 1387 | ] |
1355 | 1388 | }, |
1356 | 1389 | { |
1357 | 1390 | "output_type": "stream", |
1358 | 1391 | "stream": "stdout", |
1359 | 1392 | "text": [ |
1360 | 1393 | "\n", |
1361 | | - "1 loops, best of 3: 413 ms per loop" |
| 1394 | + "copied 105 files\n", |
| 1395 | + "\n", |
| 1396 | + "os.walk approach\n", |
| 1397 | + "1 loops, best of 3: 417 ms per loop" |
1362 | 1398 | ] |
1363 | 1399 | }, |
1364 | 1400 | { |
1365 | 1401 | "output_type": "stream", |
1366 | 1402 | "stream": "stdout", |
1367 | 1403 | "text": [ |
1368 | | - "\n" |
| 1404 | + "\n", |
| 1405 | + "copied 105 files\n", |
| 1406 | + "##################################################\n" |
1369 | 1407 | ] |
1370 | 1408 | } |
1371 | 1409 | ], |
1372 | | - "prompt_number": 4 |
| 1410 | + "prompt_number": 35 |
| 1411 | + }, |
| 1412 | + { |
| 1413 | + "cell_type": "code", |
| 1414 | + "collapsed": false, |
| 1415 | + "input": [], |
| 1416 | + "language": "python", |
| 1417 | + "metadata": {}, |
| 1418 | + "outputs": [] |
1373 | 1419 | }, |
1374 | 1420 | { |
1375 | 1421 | "cell_type": "markdown", |
|
0 commit comments