os库使用+彩蛋圣诞树

举报
irrational 发表于 2022/01/17 23:47:10 2022/01/17
【摘要】 os库的使用 os 库提供通用的、基本的操作系统交互功能 os 库是Python标准库,包含几百个函数,常用的有路径操作、进程管理、环境参数等。 路径操作 :os.path子库,处理文件路径及信息 进程管理:启动系统中其他程序 环境参数:获得系统软硬件信息等环境参数 路径操作 os.path子库以path为入口...

os库的使用

os 库提供通用的、基本的操作系统交互功能

  • os 库是Python标准库,包含几百个函数,常用的有路径操作、进程管理、环境参数等。

  • 路径操作 :os.path子库,处理文件路径及信息

  • 进程管理:启动系统中其他程序

  • 环境参数:获得系统软硬件信息等环境参数

路径操作

os.path子库以path为入口,用于操作和处理文件路径

import os.path` 或 `import os.path as op
函数 描述
os.path.abspath(path) 返回path在当前系统中的绝对路径 >>>os.path.abspath("data.txt") 'C:\\mysoft\\Python36\\MyScript\\data.txt'
os.path.normpath(path) 归一化path的表示形式,统一用\分隔路径 >>>os.path.abspath("D:\\PYE\\file.txt") 'D:\\PYE\\file.txt'
os.path.relpath(path) 返回当前程序与文件之间的相对路径 >>>os.path.relpath('C:\mysoft\Python36\MyScript\data.txt') 'MyScript\\data.txt'
os.path.dirname(path) 返回path中的目录名称 >>>os.path.dirname('C:\mysoft\Python36\MyScript\data.txt') 'C:\\mysoft\\Python36\\MyScript'
os.path.basename(path) 返回path中最后的文件名称 >>>os.path.basename('C:\mysoft\Python36\MyScript\data.txt') 'data.txt'
os.path.join(path,*paths) 组合path与paths,返回一个路径字符串 >>>op.join('C:/','mysoft/Python36/MyScript/data.txt') 'C:/mysoft/Python36/MyScript/data.txt' >>>op.join('C:\\','mysoft\Python36\MyScript\data.txt') 'C:\\mysoft\\Python36\\MyScript\\data.txt'
os.path.exists(path) 判断path对应文件或目录是否存在,返回True或False
os.path.isfile(path) 判断path所对应是否为已存在的文件,返回True或False
os.path.isdir(path) 判断path所对应是否为已存在的目录,返回True或False
os.path.getatime(path) 返回path对应文件或目录上一次的访问时间
os.path.getmtime(path) 返回path对应文件或目录最近一次的修改时间
os.path.getctime(path) 返回path对应文件或目录的创建时间
os.path.getsize(path) 返回path对应文件的大小,以字节为单位

进程管理

os.system(command)
  • 执行程序或命令command

  • 在Windows系统中,返回值为cmd的调用返回信息

img

import os
os.system("C:\\Windows\\System32\\mspaint.exe C:\\mysoft\\Python36\\MyScript\\grwordcloudv1.png")

img

环境参数

获取或改变系统环境信息

函数 描述
os.chdir(path) 修改当前程序操作的路径
os.getcwd() 返回程序的当前路径
os.getlogin() 获得当前系统登录用户名称
os.cpu_count() 获得当前系统的CPU数量
os.urandom(n) 获得n个字节长度的随机字符串,通常用于加解密运算

最后,放一个圣诞树。


  
  1. #include <windows.h>
  2. #include <math.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #define PI 3.14159265359
  6. #define T px + scale * r * cosf(theta), py + scale * r * sin(theta)
  7. float sx, sy;
  8. float sdCircle(float px, float py, float r) {
  9. float dx = px - sx, dy = py - sy;
  10. return sqrtf(dx * dx + dy * dy) - r;
  11. }
  12. float opUnion(float d1, float d2) {
  13. return d1 < d2 ? d1 : d2;
  14. }
  15. float f(float px, float py, float theta, float scale, int n) {
  16. float d = 0.0f;
  17. for (float r = 0.0f; r < 0.8f; r += 0.02f)
  18. d = opUnion(d, sdCircle(T, 0.05f * scale * (0.95f - r)));
  19. if (n > 0)
  20. for (int t = -1; t <= 1; t += 2) {
  21. float tt = theta + t * 1.8f;
  22. float ss = scale * 0.9f;
  23. for (float r = 0.2f; r < 0.8f; r += 0.1f) {
  24. d = opUnion(d, f(T, tt, ss * 0.5f, n - 1));
  25. ss *= 0.8f;
  26. }
  27. }
  28. return d;
  29. }
  30. int ribbon() {
  31. float x = (fmodf(sy, 0.1f) / 0.1f - 0.5f) * 0.5f;
  32. return sx >= x - 0.05f && sx <= x + 0.05f;
  33. }
  34. int main(int argc, char* argv[]) {
  35. int n = argc > 1 ? atoi(argv[1]) : 3;
  36. float zoom = argc > 2 ? atof(argv[2]) : 1.0f;
  37. for (sy = 0.8f; sy > 0.0f; sy -= 0.02f / zoom, putchar('\n'))
  38. for (sx = -0.35f; sx < 0.35f; sx += 0.01f / zoom) {
  39. if (f(0, 0, PI * 0.5f, 1.0f, n) < 0.0f) {
  40. if (sy < 0.1f) {
  41. putchar('.');
  42. } else {
  43. if (ribbon()) {
  44. putchar('=');
  45. } else {
  46. putchar("............................#j&o"[rand() % 32]);
  47. }
  48. }
  49. } else {
  50. putchar(' ');
  51. }
  52. }
  53. Sleep(1000);
  54. printf("\n\n\n");
  55. for (size_t i = 0; i < 40; i++) {
  56. putchar(' ');
  57. }
  58. //_sleep(5000);
  59. printf("冬至快乐, baby~!\n");
  60. Sleep(500);
  61. for (size_t i = 0; i < 40; i++) {
  62. putchar(' ');
  63. }
  64. printf("Never say die.\n");
  65. Sleep(500);
  66. for (size_t i = 0; i < 40; i++) {
  67. putchar(' ');
  68. }
  69. printf("2021/12/21, kewei\n");
  70. getchar();
  71. }

文章来源: blog.csdn.net,作者:irrationality,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_54227557/article/details/122074647

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。