【问题标题】:python strip method does not work in csv filepython strip方法在csv文件中不起作用
【发布时间】:2020-05-08 00:10:39
【问题描述】:

我有一个 csv 文件转置,当在记事本中打开时,它如下所示

电话号码,1234,,,

door_number,abcd,,,

名称,abcd,efgh,ijkl,mnop

下面是我的代码

with open("test.csv") as f:
    for line in f:
       (line.strip(','))

打印(行)

但是,它不会从 csv 中删除最后一个逗号。 我必须在其他应用程序中使用数据。这需要这种格式。 另外,我只希望第一个分隔符为“,”,其余为“;” 有可能吗?

【问题讨论】:

  • 这可能是因为, 右侧和行尾有一个\n。试试line=line.rstrip().rstrip(',')
  • 另外请记住,在line 上调用rstrip() 不会影响文件的内容,即使您将结果分配回line,就像dawg 所做的那样。如果您需要更改文件,仅以读取模式打开它是无法做到的。
  • 嗨凯文,在这种情况下,我需要将内容再次写回文件吗?

标签: python-3.x


【解决方案1】:

在 Python 中考虑这个字符串:

>>> line='123,\n'

\n 是不可见的,除非您打印它的表示形式:

>>> print(line)
123,

>>> print(repr(line))
'123,\n'

所以很容易忘记它的存在。

.strip(character) 仅适用于最后一个包机。如果你这样做:

>>> line.strip(',')
'123,\n' 

逗号不会被删除。您必须先取下\n,然后再取下,,然后将新字符串重新分配回行:

>>> line=line.rstrip().rstrip(',')
>>> line
'123'

而且,正如凯文在 cmets 中提到的那样,这只改变了字符串——而不是文件。为此,您需要打开一个可以写入的不同文件,写入您的更改,然后将新文件复制到旧文件之上。

【讨论】:

  • 阅读this SO post,了解如何在 Python 中修改 txt 文件。
猜你喜欢
  • 2021-11-17
  • 2014-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多