【发布时间】:2016-01-10 20:24:04
【问题描述】:
我有一个.csv 格式的.txt 文件。我正在考虑以.capitalize 第一列中的文本的最佳方式。
.capitalize() 是一个字符串方法,所以我考虑了以下内容;我需要打开文件,将数据转换为字符串列表,将所需单词大写,最后将数据写回文件。
为此,我做了以下工作:
newGuestList = []
with open("guestList.txt","r+") as guestFile :
guestList = csv.reader(guestFile)
for guest in guestList :
for guestInfo in guest :
capitalisedName = guestInfo.capitalize()
newGuestList.append(capitalisedName)
输出如下:[‘Peter’, ‘35’, ‘ spain’, ‘Caroline’, ‘37’, ‘france’, ‘Claire’,’32’, ‘ sweden’]
问题:
首先;为了将这个新列表写回文件,我需要将其转换为字符串。我可以使用.join 方法来实现这一点。但是,如何在每三个单词(国家/地区)之后引入一个换行符 \n,以便每个客人在文本文件中都有自己的行?
其次;这种嵌套forloops等的方法似乎非常复杂,有没有更干净的方法?
我的.txt 文件:
彼得,35 岁,西班牙\n
卡罗琳,37 岁,法国\n
克莱尔,32 岁,瑞典\n
【问题讨论】:
-
如果文件已经包含新行。我会用2个文件来做。从一个读取行,将其大写并将其写到另一个。 (如果非常大的文件可能希望以 100 行或更多行为单位进行读/写)。如果你想要大写字母,也许国家也一样。
标签: python string text multiple-columns