Python 仅将行的第一个字复制到另一个文本文件时出错

Python 仅将行的第一个字复制到另一个文本文件时出错,python,file,text-files,file-handling,Python,File,Text Files,File Handling,输入文件有数百行这样的代码 223 66 89 00 99 00 66 44 我想打印从输入文件到输出文件(比如这里223)的每一行的第一位数字 output = open("path/output.txt", "w+") for line in open("path/input filename", "r"): first=line.split() output .write

输入文件有数百行这样的代码

223 66 89 00 99 00 66 44
我想打印从输入文件到输出文件(比如这里
223
)的每一行的第一位数字

output = open("path/output.txt", "w+")    
for line in open("path/input filename", "r"):       
    first=line.split()
    output .write(first[0])
    output .write("\n")
我得到了这个错误-

data.write(第一个[0]) 索引器错误:列表索引超出范围[在中完成] 0.1s,退出代码为1]


使用
lines=file.readlines()
将文件的每一行保存在列表中。此外,当您打开文件时,您使用的是仅用于读取的
“w”
标志。相反,使用
“a+”
进行读写操作(使用
“a+”
标记,以便附加到文件中,而不是重写整个文件,这似乎与您所需的不一样)。一、 就个人而言,喜欢使用带有语句的
,因为它更干净,还可以帮您关闭文件。完整代码为:

data=open(“path/data.txt”,“a+”)
输出=打开(“path/output.txt”,“a+”)
将open(“path/input\filename.txt”,“r”)作为文件:#使用with语句打开文件
lines=file.readlines()#将文件的每一行保存为列表
对于行中的行:
data.write(f“{line.split(“”[0]}\n”)35;写入数据

首先,您的代码没有写入名为
output.txt的文件,而是要写入名为
data.txt的文件

其次,异常
索引器:列表索引超出范围
表示 拆分返回的列表为空列表:

>>> ''.split()[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

欢迎来到SO!错误引用了代码段中不存在的变量。请帮助我们提供一个帮助。谢谢你的回答!但是这段代码只将前两整行打印到另一个data.txt中。我的错误是,我忘了在我的write语句中添加[:1]。我希望现在可以了。现在只打印出第一个数字的第一个数字(2而不是223)。我误解了你的问题。我以为你想打印每个数字的第一个数字,每行上都有一个数字。在更仔细地阅读了这个问题之后,我编辑了我的答案,加入了
line.split(“”[0]
),它将在每个空格处分割线条,并在线条中写入手腕元素。我为这一混乱道歉。这起作用了!谢谢你的回答。我更正了文件名output.txt的问题。@Priya:太好了。如果你对答案感到满意,你应该考虑投票并将其标记为被接受。有关详细信息,请参阅。
with open('path/input filename') as infile, open('path/output.txt', 'w') as outfile:
    for line in infile:
        if line.strip():
            print(line.split()[0], file=outfile)