- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
运行 os.path.basename(__file__)
有时给我的文件名是 foo.py
,但有时它会给出 foo.pyc
。我知道pyc是编译后的文件,编译后可能每次都使用它。我只是对为什么 basename
返回 pyc 文件名感到困惑?那是正常的吗?其次,如何让它始终返回未编译的文件名或不带扩展名?
最佳答案
在 Python 2 中,__file__
反射(reflect)了为模块 * 实际加载的文件。导入模块时,Python 将首先尝试定位 .pyc
文件,如果找到,将使用该文件名,否则将是 .py
文件.
可能如果 __file__
在解释器下一次 运行时指向一个 .py
会发现它加载了一个 .pyc
文件,因为 Python 会尝试创建一个缓存文件(如果可以的话)。另请注意,可能不 .py
源文件;一些项目仅以 .pyc
文件的形式分发。最后但同样重要的是,Python 从不为顶级脚本创建 .pyc
文件。
生成.py
源文件文件名的一种安全方法是简单地从末尾去掉c
;你也可以包含一个 d
来处理 .pyd
文件(优化的字节码,目前只剥离断言):
sourcefile = __file__.rstrip('cd')
请检查文件是否确实存在!
* Python 3 更改了缓存字节码文件的存储位置,如果有源文件路径,__file__
将使用源文件路径,即使 .pyc
文件存在。
关于python - 为什么 basename 返回编译后的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36692362/
出于某种原因,我的代码正在做这种奇怪的事情,其中 fileparse 只打印(字面意思)File::Basename use strict; use warnings 'all'; use
>>> os.path.basename("../dir/") '' $ basename ../dir/ dir documentation os.path.basename(path) Retur
我确定我遗漏了什么,但我无法弄清楚。鉴于: $ find -type f ./hello.txt ./wow.txt ./yay.txt 为什么接下来的两个命令呈现不同的结果? $ find -typ
非常感谢您的帮助。 标题说明一切:使用有什么区别: echo `basename $HOME` 和 echo $(basename $HOME) 请注意,我知道 basename 命令的作用,两种语法
我有一个文件数组,我试图仅获取文件的基本名称,而不包含长扩展名。下面是数组的示例: [ '/public/uploads/contentitems/.DS_Store', '/public/u
我正在编写一个需要接收文件名的 bash 脚本,它可能类似于: “文件名 - Copy.txt” 当我尝试获取此文件的文件名时,basename 似乎将破折号作为操作数拾取并失败。 basename:
FOLDERS=$( basename "$(find "${LOG_DIR}" ! -path "${LOG_DIR}" -type d )") /storage/archive/fakeagent
我写了一个 shell 脚本来把我这边的很多 JPG 转换成 pdf #!/bin/bash set -xv for i in `ls -v *.JPG`; do i=$(basename "$i
给定以下命令: $(basename "/this-directory-does-not-exist/*.txt" ".txt") 它不仅输出 txt 文件,还输出其他文件。另一方面,如果
我需要一个作为 bash 脚本参数的文件的基本名称。基本名称应该去掉其文件扩展名。假设 $1 = "/somefolder/andanotherfolder/myfile.txt",所需的输出将是 "
我们有: $path = "/home/httpd/html/index.php"; $file = basename($path); // $file is set to "inde
我有一个奇怪的错误,在下面的代码中,basename() 已完成删除 $file: $files = glob(DIR_APPLICATION . 'controller/module/*.php')
我有一个奇怪的错误,在下面的代码中,basename() 已完成删除 $file: $files = glob(DIR_APPLICATION . 'controller/module/*.php')
我在一个 Windows 盒子上,我正在使用 basename 从一些目录中提取文件名。显然,文件名的大小是有限制的,否则 basename 会抛出一个错误(之前我在 linux 上,我不记得有什么问
编写脚本来优化我的网络图片。名称中包含空格的文件名和目录有问题。 这是我所拥有的: read -p "Enter full path from root (/) to your site... exa
这是我的片段: __VERSION="0.0.1" __COMMAND="${basename}" __USAGE="$__COMMAND -abc args" if [ $# == 0 ] ; th
#!/bin/bash file=debian.deb test=basename $file .deb DP="blah/blah/$test/$test.php" read -p "[$DP]:
在 bash Linux 中 v1=$(basename $0) gives filename.ext v1=${v1%.*}.log replaces e
运行 os.path.basename(__file__) 有时给我的文件名是 foo.py,但有时它会给出 foo.pyc。我知道pyc是编译后的文件,编译后可能每次都使用它。我只是对为什么 bas
这是一个简单的例子来说明这个问题: print basename('léquipe.jpg'); // léquipe.jpg print basename('équipe.jpg'); // qu
我是一名优秀的程序员,十分优秀!