Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 读取多个txt文件-剥离数据并保存到xls_Python_Excel_Text - Fatal编程技术网

Python 读取多个txt文件-剥离数据并保存到xls

Python 读取多个txt文件-剥离数据并保存到xls,python,excel,text,Python,Excel,Text,我对python非常陌生,到目前为止,我已经编写了以下代码,它允许我搜索文件夹中的文本文件,然后读取其中的所有行,打开excel文件并将读取的行保存在其中。(我仍然不确定是否所有的文本文件都是这样) 运行此操作后,我只看到文件文本数据被读取并保存到excel文件中(第一列)。也可能是它正在将多个文本文件中的数据覆盖到同一列中,直到完成为止。 有人能告诉我如何让它通过每个文本文件将剥离的数据写入excel中的下一个可用列吗 import os import glob list_of_files

我对python非常陌生,到目前为止,我已经编写了以下代码,它允许我搜索文件夹中的文本文件,然后读取其中的所有行,打开excel文件并将读取的行保存在其中。(我仍然不确定是否所有的文本文件都是这样) 运行此操作后,我只看到文件文本数据被读取并保存到excel文件中(第一列)。也可能是它正在将多个文本文件中的数据覆盖到同一列中,直到完成为止。 有人能告诉我如何让它通过每个文本文件将剥离的数据写入excel中的下一个可用列吗

import os
import glob

list_of_files = glob.glob('./*.txt')

for fileName in list_of_files:
    fin = open( fileName, "r" )
    data_list = fin.readlines()
    fin.close() # closes file

    del data_list[0:17] 
    del data_list[1:27] # [*:*]

    fout = open("stripD.xls", "w")
    fout.writelines(data_list)
    fout.flush()
    fout.close()
您可能还想查看和了解一些简单的需求。

可以在

import glob

list_of_files = glob.glob('./*.txt')

with open("stripD.xls", "w") as fout:
    for fileName in list_of_files:
        data_list = open( fileName, "r" ).readlines()
        fout.write(data_list[17])
        fout.writelines(data_list[44:])
您是否知道writelines()不会引入换行符readlines()在读取过程中保留新行,因此在文件中写入的数据列表元素中存在新行,但后者本身并不引入新行

这些行是“有趣的”:

您正在删除输入文件中前17行的数量,保留第18行(如果存在),删除另26行(如果存在),并保留任何后续行。这是一个非常不寻常的过程,在你描述你要做的事情时根本没有提到

其次,您正在将每个文件的输出行(如果有)写入同一个输出文件。在脚本结束时,输出文件将只包含来自最后一个输入文件的数据不要将代码更改为使用附加模式。。。一直打开和关闭同一个文件只是为了附加记录是非常浪费的,而且只有当您确实需要确保在发生电源或其他故障时将数据刷新到磁盘时,才有理由这样做。在开始读取文件之前打开一次输出文件,在完成所有输入文件后关闭一次

第三,任何旧的任意文本文件都不会因为您将其命名为“something.xls”而成为“excel文件”。您应该使用csv模块编写它,并将其命名为“something.csv”。如果您想更好地控制Excel如何解释它,请使用xlwt编写一个xls文件


第四,您多次提到“列”,但由于您没有给出如何将输入行拆分为“列”的任何细节,因此很难猜测“下一个可用列”是什么意思。甚至有可能怀疑您混淆了列和行。。。假设每个输入文件中少于43行,最后一个输入文件的第18行就是输出文件中的全部内容。

关于样式的小提示:您不应该在括号内键入空格,所以请编写
open(fileName,“r”)
,而不是
open(fileName,“r”)
。此外,您可能还希望使用with语句(请参阅深入Python的部分)。最后,使用“a”模式而不是“w”模式附加到文件中。多亏了这一点,我刚刚尝试了它,它的方式比以前更好,但是这会在excel工作表的一列中填充数据,现在是在excel中对数据进行排序,还是有直接的方法将其写入脚本?@Rg786我不明白excel工作表中的列叫什么。我不使用Excel表格。必须有一个Python模块来管理Excel工作表。我将学习Excel格式(虽然我知道一点…)我也在研究它,但是你帮了我很大的忙,谢谢you@Rg786嗯,编写Excel文件似乎很容易:它需要作为CSV文件编写。CSV表示逗号分隔的值,但实际上它是一个分隔符分隔的值文件,也就是说有一个字符用作列的分隔符。当值中没有分隔符时,即使没有Python的CSV模块,也可以使用Python编写CSV文件。要管理分隔符可以位于值中的情况,可以使用csv模块中提供的格式化参数。这个模块很容易使用。@Rg786如果您想使用更专业的工具来管理Excel文件,有一些:请参阅()和()引用的()非常有用的链接。谢谢你一定会完成这个。第四部分+1。我觉得这是应该说的,但我找不到语言来表达。抱歉,我的描述不太清楚,文本文件包含100到375行之间的任何内容,我需要所有这些,尽管如此,我只需要导出第18行,这是一个开始时间(标题),以及从第45行运行到最后的其余值。不管列表有多长,最后一行始终为“[结束]”。2.我刚刚意识到这一点,并且正在寻找优化代码的方法,以避免浪费,请注意,我在两周前就开始学习python了,现在还在学习过程中。我已经更改了代码,所以我现在正在写入CSV文件,如果我想在CSV中操作数据,这似乎是一种更简单的方法。4.所有数据都显示在A列中,在这个行列表中有几行我想拆分成相邻的列(B、C、D等等)。每个块的开始由单元格值“StartTime”知道,该块的最后一行,单元格值是“{END]”。基本上,我希望它能够读取列表并将“StartTim”和“[END]”之间的值分成列。希望这有意义
del data_list[0:17] 
del data_list[1:27] # [*:*]