使用 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 文件的主要内容,如果未能解决你的问题,请参考以下文章
从 loop.create_task() 引发的 python asyncio 异常