【发布时间】:2015-12-02 18:10:37
【问题描述】:
请在下面的对话框中帮助解决很多挫折:
-) 为什么 "subprocess.check_output(["ls","-rt","."])" 没有输出,尽管至少被接受了?
-) 为什么 "subprocess.check_output(["ls -rt","."]) " 根本不被接受?
-) 最重要的是:我如何在 python 中获取与某个正则表达式匹配的最新文件的名称?我的想法是向 python 提供诸如“ls -rt $REGEX | head -1”之类的内容,但 python 似乎非常不喜欢这种方法..?
karel@suske:~/home_shared/develop/airnav_db$ python --version
Python 2.7.6
karel@suske:~/home_shared/develop/airnav_db$ python -c 'import subprocess ; subprocess.check_output(["ls -rt","."])'
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python2.7/subprocess.py", line 566, in check_output
process = Popen(stdout=PIPE, *popenargs, **kwargs)
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
karel@suske:~/home_shared/develop/airnav_db$ python -c 'import subprocess ; subprocess.check_output(["ls","-rt","."])'
karel@suske:~/home_shared/develop/airnav_db$ ls -l
total 52
drwxrwxrwx 2 karel users 4096 Oct 11 2009 auxdata
...
【问题讨论】:
-
为什么要使用外部进程来列出文件?这是mywiki.wooledge.org/ParsingLs,绝对是。
-
一次一个问题。
-
你告诉它运行一个名为“ls -rt”的命令
-
@stark:我试图让它执行“ls -rt”,考虑到引号,这应该是唯一的一件事;但显然它试图扮演自作聪明。哦,好吧。
-
@tripleee:我正在尝试我能想到的唯一方法。请参阅我的最后一点:我很乐意考虑任何其他 python 编码来获取名称与某些正则表达式匹配的最新文件的名称。感谢您的思考。
标签: python regex subprocess