Python3 操作系统与路径 模块(os / os.path / pathlib)

TM1621/HT1621 段码LCD驱动器 TM1621 LCD 驱动器 阅读详情

Python3 操作系统与路径 模块(os / os.path / pathlib)


本文由 Luzhuo 编写,转发请保留该信息.
原文: http://blog.csdn.NET/Rozol/article/details/71422712


以下代码以Python3.6.1 / windows10为例
Less is more!

#!/usr/bin/env python
# coding=utf-8
__author__ = 'Luzhuo'
__date__ = '2017/5/7'

import os

def os_demo():

    # 执行命令
    dirs = os.popen("dir").read()
    print(dirs)

    # 打印目录树
    dirs_info = os.scandir()
    for info in dirs_info:
        print("文件名: {}, 路径: {}, inode: {}, 文件夹? {}, 文件? {}, 链接? {}".format(info.name, info.path, info.inode(), info.is_dir(), info.is_file(), info.is_symlink()))
        stats = info.stat()
        print(">>> 访问时间: {}, 修改时间: {}, 模式修改时间: {}, 大小: {}".format(stats.st_atime, stats.st_ctime, stats.st_mtime, stats.st_size))


import signal


def os_func():
    '''
    操作系统模块
        该模块下的方法,对各个版本的兼容不明确,须谨慎使用.
        测试版本: Python:3.6.1   Windows:Windows10,64bit
    '''

    # === 系统 ===
    strs = os.name  # 当前系统: Linux'posix' / Windows'nt' / 'ce' / 'java'
    strs = os.sep  # 分隔符 \\ (windows:\\ linux:/)
    strs = os.pathsep  # path变量分隔符 ; (windows:; linux::)
    strs = os.linesep  # 换行分隔符 \r\n (windows:/r/n linux:\n)
    dics = os.environ  # 查看系统环境变量(字典)
    strs = os.getenv("Path", default=-1)  # 读取环境变量, 没有返回None
    os.putenv("Path", "C:\\python")  # 添加环境变量  (windows无效)
    os.unsetenv("Path")  # 删除环境变量  (windows不可用)
    strs = os.getlogin()  # 当前登录的用户名
    num = os.getpid()  # 当前进程PID
    num = os.system("cmd")  # 执行操作系统命令, 返回0/1(0执行正确;1执行错误)
    strs = os.popen("dir").read()  # 执行系统命令,并去读结果
    tups = os.times()  # 当前进程时间(user用户 / system系统 / children_user子用户(windews=0) / children_system子系统(windews=0) / elapsed过去时间)
    bytes = os.urandom(10)  # n字节用以加密的随机字符
    num = os.cpu_count()  # CUP数量



    # === 进程 ===
    os.abort()  # 结束进程
    # execl(file, *args) / execle / execlp / execlpe / execv / execve / execvp / execvpe // 运行新程序替换当前进程
    os.execl(r"C:\python", 'python', 'hello.py', 'i')  # (windows执行失败)
    os._exit(0)  # 退出
    os.kill(8480, signal.SIGTERM) # (系统) 终止进程(需要导入:signal) SIGINT (终止进程) / SIGTERM (终止进程) / SIGKILL (终止进程) / SIGALRM (闹钟信号)



    # === 文件 / 文件夹 ===
    strs = os.getcwd()  # 当前路径
    bytes = os.getcwdb()  # 当前路径
    os.chdir(r"C:\Windows")  # 切换路径
    strs = os.curdir  # 当前目录 .
    strs = os.pardir  # 上级目录 ..
    strs = os.sep  # 路径分隔符 ('/' or '\\')
    bytes = os.fsencode(r"C:\c.obj")  # (编码) 文件路径字符串转为bytes类型 => b'C:\\c.obj'
    strs = os.fsdecode(b"C:\c.obj")  # (解码) 文件路径转为strs类型 => 'C:\\c.obj'
    # chmod(path, mode, *, dir_fd=None, follow_symlinks=True)
    os.chmod(r"C:\python\hello.py", 777)  # 修改模式
    os.link("file.txt", "file.txt.link")  # 创建硬链接
    os.symlink("file.txt", "file.txt.link")  # 创建软链接 (windows执行失败)
    lists = os.listdir()  # 所有文件和文件夹(列表) ".""..""D:"
    # lstat(path, *, dir_fd=None)
    tups = os.lstat(r"C:\c.obj")  # 状态信息列表
    boolean = os.access(r"C:\c.obj", os.F_OK)   # (文件/文件夹) 权限测试 (mode: F_OK存在? / R_OK可读? / W_OK可写? / X_OK可执行?)
    # scandir(path='.')  // DirEntry迭代器, 文件目录
    lists = os.scandir()
    # st_atime (访问时间) / st_ctime (修改时间) / st_mtime (模式修改时间) / st_size (大小(字节bytes))
    # st_uid (用户ID) / st_gid (用户组ID)
    # st_ino (inode) / st_mode (模式) / st_dev (设备) / st_nlink (硬链接)
    # count = cpu_count() # (系统) CPU线程数(非核数)
    tups = os.stat(".")  # 获取状态信息, 返回stat_result对象
    # utime(path, times=None, *, ns=None, dir_fd=None, follow_symlinks=True) // 更新文件的访问和修改时间
    num = os.utime(r"C:\c.obj")
    # walk(top, topdown=True, onerror=None, followlinks=False) // 根目录(top)遍历目录树,返回迭代器 (dirpath, dirnames[], filenames[]).
    root, dirnames, filenames = os.walk(r"C:\python")

    os.removedirs(r"c:\python")  # 删除多个文件夹 (windews删除多个文件夹失败,单个成功)
    # mkdir(path, mode=0o777, *, dir_fd=None) // 创建单个目录, 文件夹已存在,抛 FileExistsError 异常
    os.mkdir("test")
    # makedirs(name, mode=0o777, exist_ok=False)  // 创建(多个)文件夹
    os.makedirs(r"./t1/t2/t3")
    os.rmdir("test")  # 删除单个目录

    # mknod(path, mode=0o600, device=0, *, dir_fd=None) // 创建空文件 (windows不可用)
    os.mknod("test.txt")
    # remove(path, *, dir_fd=None)
    os.remove("test.txt")  # 删除文件
    # rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)
    os.rename("text.txt", "file.txt")  # 重命名
    os.renames("text.txt", "file.txt")
    # replace(src, dst, *, src_dir_fd=None, dst_dir_fd=None) // 重命名, 存在则替换
    os.replace("text.txt", "file.txt")
    tups = os.stat(r"text.txt")  # 文件属性



    # === 文件读写 ===
    # open(path, flags, mode=0o777, *, dir_fd=None) // 打开文件 fd:文件描述符
    fd = os.open(r"C:\c.obj", os.O_RDWR | os.O_CREAT)
    readfd, writefd = os.pipe()  # 打开管道,返回读取,写入 (windows失败)
    # fdopen(fd, *args, **kwargs) // 打开  (windews写入失败,读取""字符)
    f = os.fdopen(readfd)

    os.read(fd, 150)  # 读取
    os.write(fd, "String".encode("utf-8"))  # 写入
    os.fsync(fd)  # 强行写入
    os.ftruncate(fd, 100)  # 裁剪文件
    bytes = os.lseek(fd, 10, os.SEEK_SET)  # 设置指针  SEEK_SET(0开始) SEEK_CUR(1当前位置) SEEK_END(2末尾)

    fd_temp = os.dup(fd)  # 副本
    boolean = os.isatty(fd)  # 是否是tty设备

    stat = os.fstat(fd)  # 状态信息
    strs = os.device_encoding(fd)  # 返回终端字符编码,非终端None

    os.close(fd)  # 关闭
    os.closerange(fd, fd)  # 关闭并忽略错误


    # === DirEntry ===
    for dir in os.scandir():
        strs = dir.name  # 文件名
        strs = dir.path  # 完整路径名
        num = dir.inode()  # inode编号
        boolean = dir.is_dir()  # 是否是文件夹
        boolean = dir.is_file()  # 是否是文件
        boolean = dir.is_symlink()  # 是否是链接
        tups = dir.stat()  # 状态信息的stat_result对象

# ======================================================================




def path_demo():
    path = os.getcwd()  # 获取当前目录
    print("路径: {}".format(path))

    dirname = os.path.dirname(path)  # 获取文件夹名
    print("文件夹名为: {}".format(dirname))
    drive, path_t = os.path.splitdrive(path)  # 获取盘符
    print("盘符为: {}".format(drive))




def path_func():
    '''
    操作路径的函数
    '''
    paths = [r'file.txt', r"/python/lib/hello.py", r"/python/local/text.txt", "C:/python/local", "C:/python/file.txt"]

    strs = os.path.abspath(paths[0])  # 绝对路径
    strs = os.path.basename(paths[1])  # 文件名
    strs = os.path.dirname(paths[1])  # 文件夹名
    strs = os.path.join("C:\\", r"a.txt")  # 将路径组合返回
    dirname, filename = os.path.split(paths[1])  # 分割路径 (目录 文件名)
    strs, text = os.path.splitext(paths[1])  # 分离扩展名 (前部分, 扩展名)
    drivename, pathname = os.path.splitdrive(paths[3])  # 分离目录 (盘符, 目录)

    size = os.path.getsize(paths[0])  # 文件大小
    strs = os.path.normcase(paths[1])  # 规范大小写 (修改斜杠)
    strs = os.path.normpath(paths[1])  # 规范斜杠 (修改斜杠)
    strs = os.path.realpath(paths[1])  # 规范名字 (全名)
    # relpath(paths[0], start=os.curdir)
    strs = os.path.relpath(paths[1])  # 当前路径的文件相对路径 => 'lib\\hello.py'

    boolean = os.path.exists(paths[1])  # 路径是否存在
    boolean = os.path.isabs(paths[1])  # 是否是绝对路径 (不准)
    boolean = os.path.isfile(paths[1])  # 是否是文件
    boolean = os.path.isdir(paths[1])  # 是否是文件夹
    boolean = os.path.islink(paths[1])  # 是否是软链接
    boolean = os.path.ismount("C:\\")  # 是否是根结点
    boolean = os.path.supports_unicode_filenames  # Unicode是否可用作文件名
    boolean = os.path.samefile(paths[0], paths[0])  # 是否指向同文件或目录
    boolean = os.path.sameopenfile(os.open(paths[0], 1), os.open(paths[0], 1))  # fd是否指向同一文件
    boolean = os.path.samestat(os.stat(paths[0]), os.stat(paths[0]))  # state是否指向同一文件

    time_s = os.path.getatime(paths[0])  # 获取访问时间
    time_s = os.path.getmtime(paths[0])  # 获取修改时间
    time_s = os.path.getctime(paths[0])  # 元数据修改时间

# ===================================================================================================


import pathlib

def pathlib_demo():
    path = pathlib.Path().home() / "python"

    path_iter = path.iterdir()  # 遍历目录
    for path in path_iter:
        file_bool = path.is_file

        if not file_bool:
            continue

        print(">>> {}".format(path))

        f = path.open()  # 是文件就打开读点内容
        data = f.readline()
        print(data)
        f.close()



def pathlib_func():
    '''
    适合于不同操作系统的类来对文件系统路径进行操作
    '''

    # === PurePath (纯路径) ===
    # PurePath(*pathsegments) // 系统地灵分割
    path_pure = pathlib.PurePath('hello.py')
    path_pure = pathlib.PurePath('python', 'hello.py')
    path_pure = pathlib.PurePath(pathlib.Path('python'), pathlib.Path('hello.py'))

    # PurePosixPath(*pathsegments) // 非windows文件系统路径
    # PureWindowsPath(*pathsegments) // windows文件系统路径

    # 路径是不可变哈希的, 同风格的路径是比较有序的
    pathlib.PurePosixPath('hello') == pathlib.PurePosixPath('Hello')  # => Flase (PurePosixPath分大小写)
    pathlib.PureWindowsPath('hello') == pathlib.PureWindowsPath('hello')  # => True (PureWindowsPath不分大小写)
    pathlib.PureWindowsPath('hello') in {pathlib.PureWindowsPath('Hello')}  # => True
    pathlib.PureWindowsPath('C:') < pathlib.PureWindowsPath('d:')  # => True

    # 不同风格的路径不能比较有序
    pathlib.PureWindowsPath('hello') == pathlib.PurePosixPath('hello')  # => False
    # pathlib.PureWindowsPath('hello') < pathlib.PurePosixPath('hello')

    # 运算符
    path_pure = pathlib.PurePath('c:/')
    path_pure = path_pure / 'python' / 'hello.py'  # 拼接路径

    tups = path_pure.parts  # 返回组件元组 => ('c:\\', 'python', 'hello.py')
    drive = path_pure.drive  # 盘符 => 'c:'
    root = path_pure.root  # 根目录 => '\\'
    driroot = path_pure.anchor  # 盘符 + 根目录 => 'c:\\'
    parents = path_pure.parents  # 父路径列表 parents[0] => PureWindowsPath('c:/python')
    parent = path_pure.parent   # 父路径 => PureWindowsPath('c:/python')
    name = path_pure.name  # 文件(夹)名
    suffix = path_pure.suffix  # 扩展名
    suffixs = path_pure.suffixes  # 扩展名列表
    name = path_pure.stem  # 不带后缀名的文件(夹)名 => 'hello'

    path = path_pure.as_posix()  # 以/返回路径
    path = path_pure.as_uri()  # 以file URL方式返回路径, 必须是绝对路径 => 'file:///c:/python/hello.py'
    path = path_pure.joinpath("a.txt", "b.txt")  # 拼接路径 => PureWindowsPath('c:/python/hello.py/a.txt/b.txt')
    path = path_pure.with_name("world.py")  # 更改路径文件(夹)名 => PureWindowsPath('c:/python/world.py')
    path = path_pure.with_suffix(".txt")  # 更改扩展名,没有则添加

    boolean = path_pure.match("*.py")  # 匹配通配符 (从右侧进行匹配) (大小写的区分见上方比较代码)
    boolean = path_pure.is_absolute()  # 是否是绝对路径 (/ // c:/ 开头都被认为是绝对路径)




    # === Path (具体路径) ===
    # Path(*pathsegments)
    path = pathlib.Path('hello.py')

    # PosixPath(*pathsegments)
    # WindowsPath(*pathsegments)

    path_s = path.cwd()  # 当前路径
    home = path.home()  # 用户主目录

    state = path.stat()  # 该路径的状态信息 同os.stat()
    state = path.lstat()  # 同stat(), 目标是软链接将返回软链接信息
    path.chmod(777)  # 修改权限模式 同os.chmod()
    path.lchmod(777)  # 同chmod(), 目标是软链接将更改软链接模式
    lists = path.glob(r'*.py')  # 迭代器, 所有py文件  (windows失效)
    group = path.group()  # 文件的组  (windows不可用)
    iter = path.iterdir()  # 遍历目录 (必须是目录)
    # mkdir(mode=0o777, parents=False, exist_ok=False)
    path.mkdir()  # 创建文件夹
    path.rmdir()  # 删除文件夹
    # open(mode='r', buffering=-1, encoding=None, errors=None, newline=None)  // 打开文件
    f = path.open()
    bytes = path.read_bytes()  # 读取文件内容
    num = path.write_bytes(b"hello")  # (覆盖)写入文件内容
    # read_text(encoding=None, errors=None)
    strs = path.read_text(encoding='utf-8')
    # write_text(data, encoding=None, errors=None)
    num = path.write_text("hello")
    ow = path.owner()  # 该文件拥有者 (windows不可用)
    path.rename("new.txt")  # 重命名,目标存在则替换
    path.replace("new.txt")  # 重命名,目标存在则替换
    path_s = path.resolve()  # 绝对路径
    path.symlink_to("hello.py", target_is_directory=False)  # 创建软链接, 如果目标是目录, 则(windows下)target_is_directory=True (windows失败)
    path.unlink()  # 删除文件/文件软链接
    # touch(mode=0o666, exist_ok=True)
    path.touch()  # 创建文件

    boolean = path.exists()  # 文件(夹)是否存在
    boolean = path.is_dir()  # 是否是文件夹
    boolean = path.is_file()  # 是否是文件
    boolean = path.is_symlink()  # 是否是硬链接
    boolean = path.is_block_device()  # 是否是块设备
    boolean = path.is_char_device  # 是否是字符设备
    boolean = path.samefile(path)  # path是否是同一文件



if __name__ == "__main__":
    os_demo()
    path_demo()
    pathlib_demo()

    # os_func()
    # path_func()
    # pathlib_func()
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
Fabric V2.5 通用溯源系统——使用Hyperledger Caliper压力测试 Caliper是一款测试区块链性能的工具,支持Hyperledger Fabric、Ethereum等,支持丰富的测试配置参数,测试完成后将直接输出报告,相较于tape更加专业,但是配置稍微有些复杂。本文将一步一步配置Caliper以测试Fabric V2.5 通用溯源系统中的注册用户、查询用户、农产品上链、农产品查询的区块链性能。 阅读详情

相关推荐

GROMACS新手必看:从PDB文件到完整分子动力学模拟的保姆级教程

本文提供GROMACS分子动力学模拟的保姆级教程,从PDB文件处理到完整模拟流程全覆盖。详细讲解结构预处理、系统构建、能量最小化、生产模拟等关键步骤,并分享性能优化和结果分析技巧,帮助新手快速掌握分子动力学模拟的核心操作。

yhn456789的博客 761

Python之文件遍历-os.walk及pathlib

【代码】Python之文件遍历-os.walk及pathlib。

Mavey__的博客 822

OrangePi Kunpeng Pro 安装 ROS2 + Gazebo

OrangePi Kunpeng Pro 的优点很明显,内置openEuler,配备PD电源,做到开箱即用;板子设计也不错,风扇噪音不大,散热良好,昇腾芯片又确保小板子的性能,接口丰富是这类板子共同的优点,也很好的继承了下来,甚至还可以外接固态,可靠性大大提升。使用起来,哪怕不用openEuler的话,也可以很方便的刷Ubuntu来实现一些需要依赖的开发工作,这次没有跑AI模型,所以对算力的优势还没有很明显的感受,下次可以试一下yolo跑跑看。

Arcan 1820

数据处理 |遍历所有文件夹及子目录文件夹方法总结与实例代码详解

深度学习中不可避免的数据预处理~1. glob.glob()方法2. pathlib中的Path方法3. os.walk()方法。

weixin_44649780的博客 3508

ABB机器人C#二次开发实战:从通信打通到数据读写的落地指南(附完整工程)

最近在做自动化产线升级项目时,遇到一个核心需求:用C#上位机实时读取ABB机器人的关节角度、IO信号,同时下发运动指令和参数配置。翻遍全网,要么是Robot Studio的基础操作教程,要么是C++/VC++的老旧案例,C#相关的实操内容要么只给片段代码,要么跳过通信配置、权限设置等关键步骤,导致刚上手时踩了无数坑——连接超时、数据读不到、写入无响应,甚至误触发机器人安全保护。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1389

AI赋能传染病建模:从数据到动力学模型的本地实践指南

这次我们来看一个将 AI 与传染病动力学建模结合的前沿方向。想象一下,你手头有一份流感爆发的病例数据,传统的建模方法可能需要复杂的微分方程和大量的手动调参,而 AI 模型能否直接从数据中“学习”出传播规律,甚至自动跑通整个建模流程?这正是当前研究的热点。根据《Nature》的最新综述,人工智能正在重塑传染病流行病学建模,从参数推断、趋势预测到多源数据融合,AI 技术为解决传统建模中的计算瓶颈和数据难题提供了全新路径。 对于开发者、数据科学家或公共卫生领域的研究者而言,最关心的是:这套方法能不能在本地跑起来?

weixin_29051811的博客 297

用Python遍历文件夹下的所有文件并进行数据处理(Pathlib简介)

在数据分析的日常工作中,我们可能会经常需要处理这样的问题:将一个或多个文件夹下的文件中的数据进行分析、处理、整合。这些文件通常是相似的或是同类别的,比如我们有多个月份的销售信息,每个月份的数据分别存在一个excel文档中;多个类别的销售信息,每个类的数据分别存在一个excel文档中等等。像是如图中所示: 在当前文件夹中存在“files”文件夹,里面是我们将要分析的数据,在该文件夹目录下又有如下四个文件夹,我们可以看作是四个大类的数据: 这四个文件夹当中就分别存放着所对应的数据,随便打开其中一..

sinat_33264502的博客 3万+

自建 HTML获取腾讯六宫格点选图片验证码素材,实现刷新批量获取图片方便训练

通过自建 HTML 页面,可以方便地获取腾讯六宫格二维码素材,不仅过程简单,而且可以灵活配置各种参数。希望这篇文章能帮助到需要相关素材的小伙伴。如果你有其他问题或者更好的方法,欢迎留言交流!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 483

sys、shutil、os与pathlib常用方法介绍与总结

os.sep 可以取代操作系统特定的路径分隔符。windows下为 '\\' os.name 字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是 'posix' os.getcwd() 函数得到当前工作目录,即当前Python脚本工作的目录路径 os.getenv() 获取一个环境变量,如果没有返回none os.putenv(key, value) 设置一个环境变量值 os.listdir(path) 返回指定目录下的所有文件和目录名 os.remove

submarineas的博客 791

优化相机姿态和三维点云的Bundle Adjustment算法及其编程实现

重投影误差是指将优化后的相机姿态和三维点云投影到图像平面上,与对应的图像特征点之间的距离。Bundle Adjustment(捆绑调整)是一种用于同时优化相机姿态和三维点云的算法,它可以提高三维重建和相机定位的精度。下面是一个简单的Python示例代码,演示了如何使用Bundle Adjustment算法优化相机姿态和三维点云的参数。通过以上步骤,Bundle Adjustment算法可以不断地优化相机姿态和三维点云的参数,从而提高重建和定位的精度。Bundle Adjustment算法的编程实现。

CyberXZ的博客 740

EMC原理-传导(共模、差模)与辐射(近场、远场)详解

本文深入介绍了电磁兼容(EMC)的基本概念,包括EMI和EMS,以及如何处理传导干扰(共模、差模)和辐射干扰(近场、远场)。详细讨论了近场感应、远场辐射的原理,滤波器和屏蔽技术在抑制噪声信号中的作用。此外,探讨了差模和共模干扰的来源、影响及滤除方法,如使用差模电感、电容和共模线圈。最后,提到了穿心电容在滤除高频噪声中的应用。

让你爱上电路设计 3546

TypeError: expected str, bytes or os.PathLike object, not int(解决方法)

在使用 pip 安装软件时,报错如下 $ pip install numpy Exception: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/pip/basecommand.py", line 215, in main status = self.run(options, args) File "/usr/lib/python3/dist-packages/pip/commands/in...

ZONGXP的博客 9952

ximalaya 新xm-sign逆向思路

本文主要介绍目标网站新xm-sign值的逆向思路。仅代表个人理解,如有其他建议可在评论区沟通。声明仅仅记录一下自己的学习方法,不作为其他参考、更不作为商业用途。如有侵犯请联系本人删除。

weixin_66580433的博客 2017

python系统路径_详谈Python3 操作系统与路径 模块(os / os.path / pathlib)

下面为大家分享一篇详谈Python3 操作系统与路径 模块(os / os.path / pathlib),具有很好的参考价值,希望对大家有所帮助。一起过来看看吧以下代码以Python3.6.1 / windows10为例Less is more!#!/usr/bin/env python# coding=utf-8__author__ = 'Luzhuo'__date__ = '2017/5/7...

weixin_39710003的博客 210

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

python系统路径_Python3 操作系统与路径 模块(os / os.path / pathlib)

#!/usr/bin/env python# coding=utf-8__author__ = 'Luzhuo'__date__ = '2017/5/7'import osdef os_demo():# 执行命令dirs = os.popen("dir").read()print(dirs)# 打印目录树dirs_info = os.scandir()for info in dirs_info:p...

weixin_39603823的博客 187

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

python oserror路径not found_详谈Python3 操作系统与路径 模块(os / os.path / pathlib)

python如何判断一个目录下是否存在某个文件?如果小编突然在人群中很疯或者沉默,那时一定很难过。1.使用os模块 用os模块中os.path.exists()方法检测是否存在test_file.txt文件 import osos.path.exists(test_file.txt)#Trueos.path.exists(no_exist_file.txt)#False2.使用Try命令 使用op...

weixin_28930033的博客 1143

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

pathlib简介与使用

开发十年,就只剩下这套架构体系了! >>> ...

weixin_36646275的博客 428

Python 的 os.path() 和 pathlib.Path()

在 Python 中一旦涉及到路径相关的操作,os.path() 模块无疑是用得最多的了,就让我们一块来看看吧! 方法 说明 os.path.abspath(path) 返回绝对路径 os.path.basename(path) 返回文件名 os.path.commonprefix(list) 返回list(多个路径)中,所有path共有的最长的路径 os.path.dirname(path) 返回文件路径 os.path.exists(path)

Looking的网页备忘录和个人知识库 6998

python模块之pathlib模块

一:pathlib模块简介 以下为官方直译: pathlib 是Python内置库,Python 文档给它的定义是 Object-oriented filesystem paths(面向对象的文件系统路径)。pathlib 提供表示文件系统路径的类,其语义适用于不同的操作系统。路径类在纯路径之间划分,纯路径提供纯粹的计算操作而没有I / O,以及具体路径,它继承纯路径但也提供I / O操作。 听起...

4707

Python路径操作库pathlib,比os+glob+shutil更好用

比os、glob和shutil好用,操作简便快捷易理解

XerCis的博客 7990

路径处理库pathlib使用详解

在编程中处理文件的读写操作时免不了要和文件路径打交道,甚至有时候为了完成某些场景功能会变的有些繁琐,以前在Python中操作文件路径,我们更多的时候是使用os模块。 而到了Python3时代后,Python3的系统标准库pathlib模块的 Path 对路径的操作会更简单。甚至可以说pathlib已经可以完全替代os.path,它完全采用面向对象的编程方式,因为Python 文档给它的定义是 Ob...

Anders's Blog 2万+
上一篇: Ubuntu16.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)
下一篇: mongoengine 使用笔记
SmallTankPy
博客等级 码龄10年 26粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值