import os, sys file = os.open("xixx.txt", os.O_RDWR | os.O_CREAT) print(file) print(type(file)) # int os.write(file, 'hello world!!!') os.close(file) print('successfully closed!') file = os.open("xixx.txt", os.O_RDWR) ret = os.read(file, 18) # 表示读取的字节数,返回的字符串 print(type(ret)) print(ret) # 打开文件 path = "." # or "./" dirs = os.listdir(path) # 输出所有文件和文件夹, 注意子目录并没有输出,返回的是文件或者是文件名的列表 print("dirs", dirs) print("type(dirs),", type(dirs)) # 返回当前的工作目录 print("当前的工作目录是:%s" % os.getcwd()) # 就是"."的内容 # 重命名 os.rename(src, dst) # 比如把当前目录的"xixi.txt" 改成"haha.txt" # os.rename("haha.txt", "xixi.txt") # 注意,这里的"haha.txt"因为是在当前的工作目录,但是如果想要重命名的不是在当前目录的话, # 那么参数src和dst最好是绝对路径,为了麻烦,可以用 # src = os.path.join(path, oldname), dst = os.path.join(path, oldname) # 这里的path是要重命名的那个文件所在的目录。 # path2 = '..' # os.rename(os.path.join(path2, "zhuan.txt"), os.path.join(path2, "qian.txt")) # print("success") """注:使用上面的os.listdir()和os.rename(src, dst)可以实现给一个文件夹中的文件批量重命名, 比如把一个里面的全部是.jpg结尾的改成.png结尾的 """ # os.walk() # hh = os.walk(".", topdown=True) # 这时候hh是个生成器, 注意不是元组 # for root, dirs, files in hh: # print(root, dirs, files) # for ev in dirs: # 当前目录中所有的子目录 # print(os.path.join(root, ev)) # print("111111111111111") # for ev in files: # print(os.path.join(root, ev)) """通过多建立几个文件和文件夹就可以发现,当是True的时候它的运行模式是这样的: . ├── __init__.py ├── dealLabel.py ├── demo.py ├── fileinput_usage.py ├── foo.txt ├── get_url.py ├── hanyi.py ├── learn_xlwings.py ├── newstat_scores_1.py ├── newstat_scores_2.py ├── os.walk_usage.py ├── os_usage.py ├── plot_roc.py ├── ren.py ├── roc_1.py ├── roc_2.py ├── shutil_usage.py ├── tagresults.py ├── teacher │ └── student ├── xiaozhang │ └── nv ├── xix.txt ├── xixi.txt └── xixx.txt 这是我的运行的目录。 运行时,第一轮 ('.', ['xiaozhang', 'teacher'], files) # 太长了 第二轮是 ('./xiaozhang', ['nv'], []) ('./xiaozhang/nv', [], []) 然后是 ('./teacher', ['student'], []) ('./teacher/student', [], []) 所以可以看出来,它的走法是从树根一级一级地往上,直到把一个叉走完时,才会回来走另一个叉。 每深一级,root就改变。 """ hh = os.walk(".", topdown=False) # 这时候hh是个生成器, 注意不是元组 for root, dirs, files in hh: print(root, dirs, files) # for ev in dirs: # 当前目录中所有的子目录 # print(os.path.join(root, ev)) # print("111111111111111") # for ev in files: # print(os.path.join(root, ev)) # # 这次打出来的是 # ('./xiaozhang/nv', [], []) # ('./xiaozhang', ['nv'], []) # ('./teacher/student', [], []) # ('./teacher', ['student'], []) # ('.', ['xiaozhang', 'teacher'], ['learn_xlwings.py', 'newstat_scores_1.py', 'plot_roc.py', 'dealLabel.py', 'hanyi.py', 'roc_2.py', 'ren.py', 'shutil_usage.py', 'os.walk_usage.py', '__init__.py', 'os_usage.py', 'xixi.txt', 'foo.txt', 'tagresults.py', 'xix.txt', 'xixx.txt', 'roc_1.py', 'get_url.py', 'fileinput_usage.py', 'demo.py', 'newstat_scores_2.py']) """topdown=False是从树梢开始的,也是一个叉一个叉的往下,直至最根。"""