我正在尝试自动化一个过程,在特定文件夹中,有多个文本文件遵循相同的数据格式/结构 . 在文本文件中,数据用逗号分隔 . 我希望能够将所有这些文本文件输出到一个累积的csv文件中 . 这就是我现在所拥有的,并且因为缺乏python知识而似乎陷入了困境 .
from collections import defaultdict
import glob
def get_site_files():
sites = defaultdict(list)
for fname in glob.glob('*.txt'):
csv_out = csv.writer(open('out.csv', 'w'), delimiter=',')
f = open('myfile.txt')
for line in f:
vals = line.split(',')
csv_out.writerow()
f.close()
编辑:提出评论:我想确保读取所有文本文件,而不仅仅是myfile.txt .
此外,如果我可以将它们全部合并到一个大的.txt文件中,然后我可以将它们变成一个非常好的csv,我只是不确定这样做的确切方法 .
3 回答
只需对代码进行一些重新排序即可 .
但由于它们都采用相同的格式,您可以将它们连接起来:
您也可以尝试不同的方式:
我曾经使用过os.listdir() . 这将为您提供目录中所有文件的列表 . 与os.path.join结合使用,您可以管理某个目录中的所有* .csv文件 .
可在参考资料中找到一些其他信息:os和os.path
所以我只是循环遍历目录中的所有文件(搜索它们以“.csv”结尾),对于每个文件,将每行作为字符串存储在列表中,用字符串分隔符分隔字符串,make“, “ 至 ” . ”在左侧字符串中并再次连接字符串 . 然后将列表的每一行推送到您要使用的输出文件
我强烈推荐python standard library获取有关python到新手的总功能的信息;)
希望有所帮助;)
我修改了上面的代码,将文本文件转换为csv并获取工作代码,将文件夹中的所有csv文件转换为附加所有csv文件的一个文本文件 . 效果很好 .
import glob import csv