使用 Python Loop 从 Excel 文件创建多个 .txt 文件

Posted

技术标签:

【中文标题】使用 Python Loop 从 Excel 文件创建多个 .txt 文件【英文标题】:Creating Multiple .txt files from an Excel file with Python Loop 【发布时间】:2019-06-19 22:38:51 【问题描述】:

我的工作正处于从 SAS 切换到 Python 的过程中,我正努力在这方面取得领先。我正在尝试编写单独的 .txt 文件,每个文件代表 Excel 文件列的所有值。

我已经能够上传我的 Excel 工作表并很好地创建一个 .txt 文件,但为了实际使用,我需要找到一种方法来创建一个循环,该循环将通过并将每一列变成它自己的 .txt 文件,并将文件命名为“ColumnName.txt”。

上传 Excel 表格:

将熊猫导入为 pd

wb = pd.read_excel('placements.xls')

创建单个 .txt 文件:(将每一列命名为 A-Z 以便于参考)

with open("A.txt", "w") as f:

for item in wb['A']:
    f.write("%s\n" % item)

在 for 循环中尝试我的手(无济于事):

导入全局

对于 glob.glob("*.txt") 中的文件:

    f = open(( file.rsplit( ".", 1 )[ 0 ] ) + ".txt", "w") 
    f.write("%s\n" % item)
    f.close()

第一部分就像一个魅力,给了我一个包含所有相关数据的 .txt 文件。

当我使用 glob 命令尝试进行一些迭代时,它不会出错,但只会给我一个输出文件 (A.txt),而 A.txt 中唯一的数据点是字母 A。我'我确定我的输入已经偏离了......在永远寻找之后,我发现这是有道理并运行的,但我认为我不理解输入到命令中的输入,或者如果我正在运行的是完全不准确。

任何人都将给予任何帮助将不胜感激!我确信这是一个简单的循环,当您对 python 编程如此陌生时,很难理解。

再次感谢!

【问题讨论】:

我们没有足够的信息。如果它运行一次,则意味着在运行 python 文件时在 pwd 中只找到了 1 个 txt 文件。您能否确认 glob 返回一个迭代器、列表或任何其他可迭代对象,并且其中有多个值? 【参考方案1】:

我建议to_csv使用pandas写入文件,只需要将扩展​​名改为.txt

# Uploading Excel Sheet:
import pandas as pd

df = pd.read_excel('placements.xls')

# Creating single .txt file: (Named each column A-Z for easy reference)

for col in df.columns:
    print (col)
    #python 3.6+ 
    df[col].to_csv(f"col.txt", index=False, header=None)
    #python bellow
    #df[col].to_csv(".txt".format(col), index=False, header=None)

【讨论】:

非常感谢,杰兹瑞尔!这非常有效。我真的很感激! @Stephanie 欢迎您!如果我的回答有帮助,请不要忘记 accept 它 - 单击答案旁边的复选标记 () 将其从灰色切换为填充。谢谢。

以上是关于使用 Python Loop 从 Excel 文件创建多个 .txt 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用While循环导出Excel

将 JSON 解析为 Excel - LOOP

使用python从在线端点解析Excel文件[重复]

从 loop.create_task() 引发的 python asyncio 异常

如何使用 python 3 将数据从 textedit 导出到 excel 文件

如何从网站获取文本数据并使用python存储为excel文件