我有以下问题。我有一个不同文本行的列表,其中都有逗号。我想将文本保留在逗号的左侧,并删除文件中所有行的逗号之后发生的所有内容。
以下是文件中的示例行:
1780375“004956,down,943794,22634,ET,2115,
我想在第一个逗号后删除字符:
我试图制作程序但是遇到了一些麻烦。以下是我到目前为止的情况:
datafile = open('C:\\middlelist3.txt', 'r')
smallerdataset = open('C:\\nocommas.txt', 'w')
counter = 1
for line in datafile:
print counter
counter +=1
datafile.rstrip(s[,])
smallerdataset.write(line)
答案 0 :(得分:4)
您可以使用split
。它将字符串拆分为给定的子字符串。由于您只需要第一部分,我将1设置为第二个参数,使其仅在第一个参数上分割。
您可以使用enumerate
,而不是使用计数器,如下所示:
datafile = open('C:\\middlelist3.txt', 'r')
smallerdataset = open('C:\\nocommas.txt', 'w')
for counter, line in enumerate(datafile):
print counter
smallerdataset.write(line.split(',', 1)[0])
smallerdataset.close()
这是使用with
语句和生成器表达式改进脚本的方法:
with open('C:\\middlelist3.txt') as datafile:
list = (line.split(',', 1)[0] for line in datafile)
with open('C:\\nocommas.txt', 'w') as smallfile:
smallfile.writelines(list)