Hug*_*lpz 18 python python-module python-2.7
我有一个100行,3岁的python刮刀,现在有bug.起跑线是:
import urllib, re, os, sys, time # line 1: import modules
os.chdir(os.path.dirname(sys.argv[0])) # line 2: all works in script's folder > relative address
# (rest of my script here!)
Run Code Online (Sandbox Code Playgroud)
跑步时
$cd /my/folder/
$python script.py
Run Code Online (Sandbox Code Playgroud)
我收到错误:
python script.py
Traceback (most recent call last):
File "script.py", line 2, in <module>
os.chdir(os.path.dirname(sys.argv[0]))
OSError: [Errno 2] No such file or directory: ''
Run Code Online (Sandbox Code Playgroud)
我该如何阅读此错误以及该怎么做?
zig*_*igg 31
您是否注意到,如果您跑步,则不会收到错误
python ./script.py
Run Code Online (Sandbox Code Playgroud)
代替
python script.py
Run Code Online (Sandbox Code Playgroud)
这是因为sys.argv[0]将./script.py在前一种情况下阅读,它提供了os.path.dirname一些工作.如果未指定路径,sys.argv[0]则只读取script.py,并且os.path.dirname无法确定路径.
Moe*_*ius 21
我有这个错误,因为我提供了一串参数subprocess.call而不是一个参数数组.为防止这种情况,请使用shlex.split:
import shlex, subprocess
command_line = "ls -a"
args = shlex.split(command_line)
p = subprocess.Popen(args)
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 19
用途os.path.abspath():
os.chdir(os.path.dirname(os.path.abspath(sys.argv[0])))
Run Code Online (Sandbox Code Playgroud)
sys.argv[0]在你的情况下只是一个脚本名称,没有目录,所以os.path.dirname()返回一个空字符串.
os.path.abspath() 将其转换为具有目录名称的正确绝对路径.
| 归档时间: |
|
| 查看次数: |
134429 次 |
| 最近记录: |