Python 转换多个txt数据文件并导入excel或数据库
我有大约1000个txt文件,格式如下。 标识符与数据之间用“:”分隔。但是,它本身可以包含的数据“:”我正在编写一个脚本,该脚本允许我将数据转换并导入excel、csv、microsoft Access或mssql格式。以有条理的方式。假设所有txt文件的标识符都相同Python 转换多个txt数据文件并导入excel或数据库,python,sql-server,excel,analytics,transpose,Python,Sql Server,Excel,Analytics,Transpose,我有大约1000个txt文件,格式如下。 标识符与数据之间用“:”分隔。但是,它本身可以包含的数据“:”我正在编写一个脚本,该脚本允许我将数据转换并导入excel、csv、microsoft Access或mssql格式。以有条理的方式。假设所有txt文件的标识符都相同 Author: sharkespare Content-Length: 15200098 Content-Type: application/pdf Creation-Date: 2015-02-05T07:27:34Z Las
Author: sharkespare
Content-Length: 15200098
Content-Type: application/pdf
Creation-Date: 2015-02-05T07:27:34Z
Last-Modified: 2015-02-05T07:28:38Z
Last-Save-Date: 2015-02-05T07:28:38Z
created: Thu Feb 05 08:27:34 CET 2015
creator: Williams spear
date: 2015-02-05T07:27:34Z
dc:creator: Library of congress
您可以循环思考字符串,直到遇到“:”符号,然后查看下一个字母,如果它是空格(“”),那么所需的数据将从整个字符串中分离出来。您没有说明首选哪种技术,但由于python和Excel都有标记,因此我假设您可以同时使用这两种技术。以下内容很容易在python中实现。我假设文件格式是静态的 创建标题行字符串,例如“作者、内容长度,…”。 打开一个输出文件并将头写入该文件 循环浏览输入文件的目录。 对于每个文件,读取文件中的行并拆分标识符(您知道标识符的名称,因此拆分或字符串替换应该可以工作,您可以使用冒号拆分,但是您必须特别注意dc:creator标识符)。将隔离数据附加到该文件的字符串后,再附加一个“,”。处理完文件后,将该字符串附加到输出文件中。处理完所有文件后,输出文件将是可以用Excel打开的csv 一些可能有助于实现的指针: 关于: 打开
txt文件
并按拆分:“
(冒号后加空格),将其放入列表中
text=[]
with open('read_file.txt','r') as f:
for line in f:
for word in line.split(": "):
text.append(word)
现在,每个偶数元素都是一个标识符,下一个奇数元素是相应的数据。重新生成列表,将每个标识符及其数据放在一起:
sorted = [text[i:i+2] for i in range(0, len(text), 2)]
最后,使用zip
将所有内容写入colums中的csv文件中:
import csv
with open('save_file.csv', 'w') as f:
writer = csv.writer(f)
writer.writerows(zip(*sorted))
如果不想转置,只需将zip(*sorted)
替换为sorted
。
保存第一个文件中的文本后,循环其他文件,仅将数据添加到csv文件中。通过使用“a”参数打开,允许在文件末尾追加内容,并使用[zip(*sorted)[1]]
:
files = ["file1.txt", "file2.txt", "file3.txt", etc]
for each in files:
text=[]
with open(str(each),'r') as f:
for line in f:
for word in line.split(": "):
text.append(word)
sorted = [lst[i:i+2] for i in range(0, len(lst), 2)]
with open('save_file.csv', 'a') as f:
writer = csv.writer(f)
writer.writerows([zip(*sorted)[1]])
我可以使用sed或awk和find来清理数据。主要问题是如何转换数据。。并自动将数据“文件”导入csv格式或数据库亲爱的ikkjo。。谢谢你的意见。。我可能正在寻找一个示例代码。链接或。。某物将在伪代码上添加一些指向答案的指针。是否考虑使用Excel宏?是的,这是一个选项。我也在用一些工具来做这项工作嗨,a.smiet。。谢谢你的意见。我要试一试。。然后再打给你嗨,斯米特。。这是一个很好的代码。。我有一些打字错误。。稍后将对其进行优化并粘贴我的结果..使用“导入全局路径=”/home/download/*.txt”files=glob.glob(路径)修复了文件中的文件:'