相关疑难解决方法(0)

检查文件扩展名

我正在处理某个程序,如果有问题的文件是flac文件或mp3文件,我需要让它做不同的事情.我可以用这个吗?

if m == *.mp3
   ...
elif m == *.flac
   ...
Run Code Online (Sandbox Code Playgroud)

我不确定它是否会起作用.

编辑: 当我使用它时,它告诉我无效的语法.那我该怎么办?

python file-extension

138
推荐指数
8
解决办法
21万
查看次数

我应该使用`import os.path`还是`import os`?

根据官方文档,os.path是一个模块.那么,导入它的首选方式是什么?

# Should I always import it explicitly?
import os.path
Run Code Online (Sandbox Code Playgroud)

要么...

# Is importing os enough?
import os
Run Code Online (Sandbox Code Playgroud)

请不要回答" os为我导入作品".我知道,它现在也适用于我(从Python 2.6开始).我想知道的是关于这个问题的任何官方建议.因此,如果您回答此问题,请发布您的推荐信.

python coding-style python-import

132
推荐指数
6
解决办法
10万
查看次数

如何在Python中替换(或剥离)文件名中的扩展名?

Python中是否有内置函数可以替换(或删除)文件扩展名(如果有的话)?

例:

print replace_extension('/home/user/somefile.txt', '.jpg')
Run Code Online (Sandbox Code Playgroud)

在我的例子中:/home/user/somefile.txt将成为/home/user/somefile.jpg

我不知道它是否重要,但我需要这个我正在编写的SCons模块.(所以也许我可以使用一些SCons特定的功能?)

我想要干净的东西.对字符串中的所有实例进行简单的字符串替换.txt显然不是很干净.(如果我的文件名是这会失败somefile.txt.txt.txt)

python scons

87
推荐指数
8
解决办法
9万
查看次数

os.path.splitext优于常规.split的好处?

另一个问题中,投票清楚地表明该os.path.splitext函数比简单的.split('.')[-1]字符串操作更受欢迎.有没有人有时间解释为什么会这样?是更快,更准确,还是什么?我愿意接受它有更好的东西,但我不能立即看到它可能是什么.可能导入整个模块来做这件事有点矫枉过正,至少在简单的情况下呢?

编辑:操作系统特异性是一个巨大的胜利,并不是立即显而易见的; 但即便如此,我也应该看到"如果没有一个点"会怎样的情况!并感谢大家对图书馆使用的一般评论.

python

37
推荐指数
4
解决办法
3万
查看次数

用于匹配/解压缩文件扩展名的Javascript正则表达式

以下正则表达式

var patt1=/[0-9a-z]+$/i;
Run Code Online (Sandbox Code Playgroud)

提取字符串的文件扩展名,例如

filename-jpg
filename#gif
filename.png
Run Code Online (Sandbox Code Playgroud)

如果字符串确实是一个带有一个点作为分隔符的文件名,如何修改此正则表达式只返回一个扩展名?(显然文件名#gif不是常规文件名)

更新根据tvanofsson的评论我想澄清一下,当JS函数收到字符串时,字符串将包含一个没有空格的文件名,没有点和其他特殊字符(实际上它将被处理slug).问题不在于解析文件名,而在于错误地解析slugs - 函数返回了"jpg"的扩展名,当它被赋予"filename-jpg"时,它应该真正返回null或清空字符串,这是需要纠正的行为.

javascript regex

32
推荐指数
4
解决办法
7万
查看次数

如何正确获取文件扩展名?

我知道这个问题在本网站上被多次询问.但是我发现他们错过了一个重要的观点:只考虑了一个周期的文件扩展名*.png *.mp3,但是如何用两个周期来处理这些文件名.tar.gz.

基本代码是:

filename = '/home/lancaster/Downloads/a.ppt'
extention = filename.split('/')[-1]
Run Code Online (Sandbox Code Playgroud)

但很明显,这段代码不能像文件一样工作a.tar.gz.怎么处理呢?谢谢.

python

18
推荐指数
3
解决办法
5万
查看次数

在python中使用模式匹配获取文件扩展名

我试图找到一个文件的扩展名,给它的名字作为字符串.我知道我可以使用的功能os.path.splitext,但它并不按预期的情况下,我的文件扩展名是.tar.gz.tar.bz2因为它提供了扩展的gzbz2,而不是tar.gztar.bz2分别.
所以我决定使用模式匹配自己找到文件的扩展名.

print re.compile(r'^.*[.](?P<ext>tar\.gz|tar\.bz2|\w+)$').match('a.tar.gz')group('ext')
>>> gz            # I want this to come as 'tar.gz'
print re.compile(r'^.*[.](?P<ext>tar\.gz|tar\.bz2|\w+)$').match('a.tar.bz2')group('ext')
>>> bz2           # I want this to come 'tar.bz2'
Run Code Online (Sandbox Code Playgroud)

我正在使用(?P<ext>...)我的模式匹配,因为我也希望得到扩展名.

请帮忙.

python regex

5
推荐指数
2
解决办法
2万
查看次数

如何使用正则表达式从字符串中提取文件名

我是正则表达式的新手,并尝试从基本上是文件路径的字符串中提取文件名。


string = "input_new/survey/argentina-attributes.csv"
string_required = argentina-attributes

Run Code Online (Sandbox Code Playgroud)

我知道我可以通过下面的代码来做到这一点。

string.split('/')[2].split('.')[0]
Run Code Online (Sandbox Code Playgroud)

但我希望通过使用正则表达式来做到这一点,因此如果将来路径的格式发生变化(input_new/survey/path/path/argentina-attributes.csv)不应影响输出。

我知道以前问过类似的问题,但我正在寻找一种适合我的用例的模式。

python regex python-3.x

4
推荐指数
1
解决办法
1万
查看次数

python获取扩展文件:splitext vs endswith

我想知道,这是获取文件扩展名并检查其是否属于列表的更好方法。

name, ext = os.path.splitext(filename)
return ext == ".pdf" # an example
Run Code Online (Sandbox Code Playgroud)

要么

return filename.endswith(".pdf")
Run Code Online (Sandbox Code Playgroud)

python

3
推荐指数
2
解决办法
1090
查看次数

如何获取python目录中的文件名列表(不带扩展名)?

假设我的文件夹结构是

+Data
  -abc.jpg
  -db.jpg
  -ap.jpg
Run Code Online (Sandbox Code Playgroud)

输入是“路径/到/数据”

预期输出为 ['abc','db','ap']

我看到了很多类似的问题,但没有得到我想要的。我更喜欢在 python 中使用 os 模块。

python

3
推荐指数
2
解决办法
1万
查看次数