小编use*_*219的帖子

python 2.4按特定列排序文本文件

完全是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不兼容.

python csv

2
推荐指数
1
解决办法
1355
查看次数

Python try / except不起作用

试图使该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)

python try-catch python-2.4

2
推荐指数
1
解决办法
2万
查看次数

在dcl脚本中隐藏错误消息

我有一个运行的测试脚本会产生一些错误,如下所示,我希望这些错误.反正我可以阻止它们出现在屏幕上吗?我用

$ 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)

vms dcl

2
推荐指数
1
解决办法
1062
查看次数

python将dictreader写入csv文件

我正在使用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)

python csv python-2.4

2
推荐指数
1
解决办法
3818
查看次数

Python 将 dict 值扩展为列表

我正在尝试将 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)

python python-2.6

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

python ×4

csv ×2

python-2.4 ×2

dcl ×1

python-2.6 ×1

try-catch ×1

vms ×1