从OS X终端运行时,Python脚本不会写入文本文件

时间:2016-06-10 05:01:20

标签: python macos

所以我写了一个非常基本的脚本作为我的系统的更大测试的一部分。基本上,它只是创建一个新文件 text.txt 并将“abject failure”写入文件。

#!/usr/bin/env python
print "running"  
text_file = open("text.txt", "a")
text_file.write("abject failure")    
text_file.close()

print "success"

当我从IDLE运行时,脚本运行得非常好,但是当我从Mac OS X终端运行时

python /Users/.../serverside.py 

我只获取“打印”值,但没有任何内容写入 text.txt 文件。为什么这样,我该如何解决?

1 个答案:

答案 0 :(得分:0)

要确保您的脚本始终有效,无论您的来电来自何处,还要设置文件的绝对路径

cd /Users/path/to/file
python /Users/.../serverside.py

另一个解决方案,如评论中所述,是将您的工作目录更改为您希望文件所在的路径

import regex

pa   = r'(\S*(?P<a>-A-)\S* )'
pb   = r'(\S*(?P<b>-B-)\S* )'
pc   = r'(\S*(?P<c>-C-)\S* )'
pd   = r'(\S*(?P<d>-D-)\S* )'

pabc = r'{pa}{pb}?{pc}?' .format( pa = pa, pb = pb, pc = pc )
qabc = r'(?=({})).*'     .format( pabc )
pac  = r'{pa}{pc}?'      .format( pa = pa, pb = pb, pc = pc )
qac  = r'(?=({})).*'     .format( pac )
s    = '-A- -B-C- '

print 'qabc:', qabc
for m in regex.finditer( qabc, s, overlapped = True ):
    print m.capturesdict()

print
print 'qac :', qac
for m in regex.finditer( qac,  s, overlapped = True ):
    print m.capturesdict()