<p>好的,我们发现这里有代码错误,而不是权限错误。
事实上很尴尬。更正后的代码如下。第一个问题是我使用<code>file.read()</code>逐行读取文件。我应该使用<code>file.readlines()</code>,并将该行另外改为<code>[line.rstrip('\n') for line in pre_textfile]</code>,以便删除换行符。第33行还有一个索引错误,我已经更正了。现在还不清楚的是,为什么我不能让任何类型的伐木为我工作,这样可以为几个人节省相当多的时间。在</p>
<h2>啊!/usr/垃圾箱/Python2.6</h2>
<pre><code># Import modules for CGI handling
import cgi, cgitb
import os
cgitb.enable()
#Functions to automatically print HTML headers and footers.
def PrintHeader():
print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>LoopFinder Running</title>"
print "</head>"
print "<body>"
def PrintFooter():
print "</body>"
print "</html>"
# Create instance of FieldStorage
form = cgi.FieldStorage()
ID_Number = form.getvalue('IDNum')
with open('/loopfinder_data/RunData/%s/JobStatus.txt' % ID_Number, 'r') as pre_textfile:
textfile = [line.rstrip('\n') for line in pre_textfile]
if textfile[0] == 'Running':
PrintHeader()
print '<h2>Your run is not complete. Please check back later.</h2>'
PrintFooter()
if textfile[0] == 'Stopped':
PDBID = textfile[2]
if textfile[1] == 'PDBError':
PrintHeader()
print '<h2>We were unable to download the PBDID you entered, which was %s</h2>' % PDBID
print '<h2>Please check that this PDBID exists before trying again.</h2>'
PrintFooter()
elif textfile[1] == 'ChainCountError':
PrintHeader()
print '<h2>We were unable to either download or open the PBDID you entered, which was %s</h2>' % PDBID
print '<h2>Please check that this PDBID exists before trying again.</h2>'
PrintFooter()
elif textfile[1] == 'SingleChainError':
PrintHeader()
print '<h2>It appears that your PDB structure of interest contains only one chain.</h2>'
print '<h2>LoopFinder requires a multi-chain interface from which to calculate energy values.</h2>'
PrintFooter()
elif textfile[1] == 'LoopFinderError':
PrintHeader()
print '<h2>LoopFinder experienced an unknown error while analyzing your PDB file.</h2>'
print '<h2>Leave a comment including your run ID and we will try to solve this issue.</h2>'
PrintFooter()
elif textfile[1] == 'PyRosettaError':
PrintHeader()
print '<h2>PyRosetta experienced an unknown error while analyzing your PDB file.</h2>'
print '<h2>Leave a comment including your run ID and we will try to solve this issue.</h2>'
PrintFooter()
if textfile[0] == 'Completed':
PrintHeader()
print '<a href="http://<url_redacted>/loopfinder_data/RunData/%s/results/%s_Results.zip">\
Click here to download your results.</a>' % (ID_Number,ID_Number)
PrintFooter()
</code></pre>