首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python替换listitem

python替换listitem
EN

Stack Overflow用户
提问于 2014-04-08 00:53:45
回答 2查看 74关注 0票数 0

我有来自csv文件的以下输出:

代码语言:javascript
复制
word1|word2|word3|word4|word5|word6|01:12|word8
word1|word2|word3|word4|word5|word6|03:12|word8
word1|word2|word3|word4|word5|word6|01:12|word8

我需要做的是更改时间字符串,如这个00:01:12。我的想法是提取列表项目7,并在前面添加一个"00:“字符串。

代码语言:javascript
复制
import csv

with open('temp', 'r') as f:
    reader = csv.reader(f, delimiter="|")
    for row in reader:      
        fixed_time = (str("00:") + row[7])
        begin = row[:6]
        end = row[:8]
        print begin + fixed_time +end

获取错误消息:

TypeError:只能将列表(而不是"str")连接到列表中。

我也在这个帖子上看过。

how to change [1,2,3,4] to '1234' using python

我想知道我的独白方式是否正确。也许需要用斯普利特或者别的什么来做这件事。

thx寻求任何帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-08 01:00:59

抛出异常的行是

代码语言:javascript
复制
print begin + fixed_time +end

因为beginend都是,所以lists、fixed_time都是字符串。每当您获取列表的(即row[:6]row[:8]部件)时,都会返回一个列表。如果你只想打印出来,你可以

代码语言:javascript
复制
print begin, fixed_time, end

你就不会有任何错误。

修正代码:

我打开一个新的文件来写(我把它叫做'final',但你可以把它命名为你想要的任何东西),我只需要修改一下就可以把所有的东西都写到它上面。最简单的方法是更改具有行(row[6] here)的列表中的一个元素,并使用'|'.join在每个列之间编写一个管道字符。

代码语言:javascript
复制
import csv

with open('temp', 'r') as f, open('final', 'w') as fw:
    reader = csv.reader(f, delimiter="|")
    for row in reader:      
        # just change the element in the row to have the extra zeros
        row[6] = '00:' + row[6]
        # 'write the row back out, separated by | characters, and a new line.
        fw.write('|'.join(row) + '\n')
票数 0
EN

Stack Overflow用户

发布于 2014-04-08 01:02:22

您可以使用regex:

代码语言:javascript
复制
>>> txt = """\
... word1|word2|word3|word4|word5|word6|01:12|word8
... word1|word2|word3|word4|word5|word6|03:12|word8
... word1|word2|word3|word4|word5|word6|01:12|word8"""

>>> import re
>>> print(re.sub(r'\|(\d\d:\d\d)\|', r'|00:\1|', txt))
word1|word2|word3|word4|word5|word6|00:01:12|word8
word1|word2|word3|word4|word5|word6|00:03:12|word8
word1|word2|word3|word4|word5|word6|00:01:12|word8
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22925720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档