完全是python的新手我在使用2.4版本时遇到了问题
我有一个文本文件,其中包含3个列,它们由制表符分隔,而不是单个选项卡,9个制表符.1000行文件ex:
$1$sda4356:[sgb1_diska5.ldlbat44.libabl]talild_0329_base.rpt talild_0329_base.rpt 00000000000000005062
Run Code Online (Sandbox Code Playgroud)
我需要做的是按列3(00000000000000005062)排序所有内容.
使用csv阅读器是处理这种情况的最佳方法吗?如何处理我的文本文件使用9个选项卡分隔每列的事实.我发现的大多数其他东西都与python 2.4不兼容.
试图使该try/except语句起作用,但出现问题。此代码将获取一个txt文件,并将位置行0中的文件复制到行1中的位置。它可以工作,但是,如果我将其中一个路径更改为无效路径,则会生成错误,ftplib.error_perm但是except命令无法启动,并且一切正常停止。我究竟做错了什么?Python 2.4
import csv
import operator
import sys
import os
import shutil
import logging
import ftplib
import tldftp
def docopy(filename):
ftp = tldftp.dev()
inf = csv.reader(open(filename,'r'))
sortedlist = sorted(inf, key=operator.itemgetter(2), reverse=True)
for row in sortedlist:
src = row[0]
dst = row[1]
tldftp.textXfer(ftp, "RETR " + src, dst)
def hmm(haha):
result = docopy(haha);
try:
it = iter(result)
except ftplib.error_perm:
print "Error Getting File"
if __name__ == "__main__":
c = sys.argv[1]
if (c == ''):
raise Exception, "missing …Run Code Online (Sandbox Code Playgroud) 我有一个运行的测试脚本会产生一些错误,如下所示,我希望这些错误.反正我可以阻止它们出现在屏幕上吗?我用
$ write sys$output
Run Code Online (Sandbox Code Playgroud)
显示是否存在预期错误.
我试着用
$ DEFINE SYS$ERROR ERROR.LOG
Run Code Online (Sandbox Code Playgroud)
但是这会将我的整个错误输出日志更改为此,如果这是正确的处理方式,我可以在脚本的某端以某种方式取消设置吗?
[错误示例]
%DCL-E-OPENIN, error opening TEST$DISK:[AAA]NOTTHERE.TXT; as input
-RMS-E-FNF, file not found
%DCL-E-OPENIN, error opening TEST$DISK:[AAA]NOTTHERE.TXT; as input
-RMS-E-FNF, file not found
%DCL-W-UNDFIL, file has not been opened by DCL - check logical name
Run Code Online (Sandbox Code Playgroud) 我正在使用python 2.4并尝试将unix last命令的值导出到csv文件。我无法弄清楚如何将其实际写入每一行到csv文件,任何帮助将不胜感激!
import csv
def check(user,logfile,name):
logfile.write('********' + name + '*********\n')
g = subprocess.Popen(["last",user], stdout=subprocess.PIPE)
stdout, stderr = g.communicate()
reader = csv.DictReader(stdout.splitlines(),
delimiter=' ', skipinitialspace=True,
fieldnames=['id', 'pts', 'cpu',
'day', 'month', 'date',
'time', 'dash', 'off',
'loggedin', 'test1', 'test2'])
writer = csv.writer(open('dict.csv','wb'))
for row in reader:
writer.writerow(row)
Run Code Online (Sandbox Code Playgroud) 我正在尝试将 dict 值扩展到 python 2.6 中的列表中,当我运行扩展时,我没有将所有字典值都放入列表中。我缺少什么?
def cld_compile(ru,to_file,cld):
a = list()
p = subprocess.Popen(ru, shell=True, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
a = p.stdout.readlines()
p.wait()
if (p.returncode != 0):
os.remove(to_file)
clderr = dict()
clderr["filename"] = cld
clderr["errors"] = a[1]
return clderr
def main():
clderrors = list()
<removed lines>
cldterr = cld_compile(ru,to_file,cld)
clderrors.extend(cldterr)
Run Code Online (Sandbox Code Playgroud)
cldterr的返回值:
print cldterr
{'errors': 'fail 0[file.so: undefined symbol: Device_Assign]: library file.so\r\n', 'filename': '/users/home/ili/a.pdr'}
Run Code Online (Sandbox Code Playgroud)
当我尝试将 cldterr 扩展到 clderrors 列表时,我只得到:
print clderrors
['errors', 'filename']
Run Code Online (Sandbox Code Playgroud)