我有一个字符串作为文件中line.split的结果。 如何将此字符串写入以第5个元素开头的另一个文件?
编辑: 我得到了这个并且它有效:
for line in data.readlines ()
if not line.startswith ("H"):
s = line.split ()
finaldata.write (" ".join (s [5:]))
finaldata.write ("\n")
唯一的问题是我的输入中有一些空的“单元格”,这会弄乱输出(将数据移到左侧,原始输入有空白)
我该怎么做?
谢谢!
答案 0 :(得分:0)
回答原始问题:如果您按计数知道元素,则应切片。 string [5:]会将第5个字符打印到行尾。切片有一个非常基本的语法;假设你有一个字符串
a = "a b c d e f g h"
你可以切片" a"来自这样的第5个角色
>>> a[5:]
' d e f g h'
切片语法是[start:end:step]。所以[5:]从5开始,包括其余部分。这里有大量的例子Understanding Python's slice notation
第二个问题并不完全清楚你想要实现的目标......以下是一些使用内联注释的常见标准字符串操作示例
>>> a = "a b c d e f g h"
>>> a[5] # Access the 5th element of list using the string index
' '
>>> a[5:] # Slice the string from the 5th element to the end
' d e f g h'
>>> a[5::2] # Get every other character from the 5th element to the end
' '
>>> a[6::2] # Get every other character from the 6th element to the end
'defgh'
# Use a list comprehension to remove all spaces from a string
>>> "".join([char for char in a if char != " "])
'abcdefgh'
# remove all spaces and print from the fifth character
>>> "".join([char for char in a if char != " "])[5:]
'fgh'
>>> a.strip(" ") # Strip spaces from the beginning and end
'a b c d e f g h'
>>> a[5:].strip(" ") # slice and strip spaces from both sides
'd e f g h'
>>> a[5:].lstrip(" ") # slice and use a left strip
'd e f g h'
编辑:添加其他用户的评论。如果你知道角色而不是位置,你就可以从中切割出来。但是,如果你有重复的字符,你必须要小心。
>>> a[a.index("e"):] # Slice from the index of character
'e f g h'
>>> b = "a e b c d e f g h e"
>>> b[b.index("e"):]
'e b c d e f g h e'