其实我的文件内容是。
ttsighser66
dagadfgadgadgfadg
dafgad
fgadfgad
ttsighser63
sadfsadf
asfdas
我的代码
file=open("C:\\file.txt","r")
cont = []
for i in file:
dd = i.strip("\n")
cont.append(dd)
cc = ",".join(cont)
if "tt" in i:
cc = ",".join(cont[:-1])
print(cont[-1], cc)
cont = []
我的代码生成如下输出:
ttsighser66
ttsighser63 dagadfgadgadgfadg,dafgad,fgadfgad
但我想要输出如下格式
ttsighser66,dagadfgadgadgfadg,dafgad,fgadfgad
ttsighser63,sadfsadf,asfdas
答案 0 :(得分:0)
file=open("file.txt","r")
cont = []
for i in file:
dd = i.strip("\n")
cont.append(dd)
#print('cc',cont)
if "ttsighser" in i and len(cont) != 1:
cc = ",".join(cont[:-1])
print(cc)
cont = []
cont.append(dd)
print(",".join(cont))
答案 1 :(得分:0)
如果您不需要将任何字符串存储到列表中而只需要打印字符串,则可以尝试使用它。
with open("file.txt", "r") as f:
line_counter = 0
file_lines = f.readlines()
for i in file_lines:
dd = i.strip()
if "tt" in dd:
print("{0}{1}".format("\n" if line_counter > 0 else "", dd), end="")
else:
print(",{0}".format(dd), end="")
line_counter += 1
print("")
您的代码显示
的原因ttsighser66
ttsighser63 dagadfgadgadgfadg,dafgad,fgadfgad
而不是
ttsighser66,dagadfgadgadgfadg,dafgad,fgadfgad
ttsighser63,sadfsadf,asfdas
是因为当您第一次遇到'ttsighser66'
时,会将其附加到cont
。然后,由于'ttsighser66'
包含'tt'
,我们将继续进行条件分支。
在条件分支中,我们将加入cont
中cc = ",".join(cont[:-1])
中的第一个和第二个字符串。但是,由于我们'ttsighser66'
中只有cont
,cont[:-1]
会给我们[]
(空列表)。由于cont[:-1]
为空,",".join(cont[:-1])
也是空的。因此,cc
将为空。由于cc
为空,print(cont[-1], cc)
会向我们提供ttsighser66
。
在第二行显示ttsighser63 dagadfgadgadgfadg,dafgad,fgadfgad
,因为cont
已包含多个值,因此它还会显示'ttsighser63'
之前的值。
不显示剩余的字符串,因为根据您的代码,在显示'tt'
中的字符串之前,需要另一个包含cc
的字符串。
基本上,您需要一对包含'tt'
的字符串来显示对之间的字符串。
添加说明:代码中的行cc = ",".join(cont)
似乎没用,因为它的范围仅限于for
循环,其值在条件分支内被替换。
答案 2 :(得分:0)
版本1(字符串列表中的所有数据和&& 1时间打印)
fp=open("file.txt", "r")
data = []
for line in fp:
if "tt" in line:
data.append(line.strip())
else:
data.append(data.pop() + "," + line.strip())
fp.close()
[print (data) for line in data]
版本2(单个字符串中的所有数据和& 1次打印)
fp=open("file.txt","r")
data = ""
for line in fp:
if "tt" in line:
data += "\n" + line.strip()
else:
data += ","+line.strip()
fp.close()
data = data[1:]
print (data)