python - 将多个txt转换为csv而不丢失数据
问题描述
免责声明:我是 Python 新手,非常感谢详细的答案。
更新:删除了不相关的代码。
更新:问题是每个单元格字符串的 Excel 限制。我根据以下建议的解决方案提供了自己的解决方案。
我想将多个 .txt 文件逐行合并到一个 .csv 文件中。这是一些复制数据。尝试的输出文件是data_replication.csv
. 如您所见,五个 .txt 文件中只有两个成功集成到 .csv 文件中。在那里,您还可以找到 .pdf 格式的输入文件。这是我在 Google Scholar 上找到的非结构化随机论文。
我使用的功能是由 Bill Bell 在“将文本文件的文件夹与单元格中的每个内容组合成 CSV”中提出的。
我用于从 .pdf 转换为 .txt 的功能是在 hkr 中针对类似问题“将 PDF 文件转换为 TXT 文件”提出的:
def txt_to_csv(x):
os.chdir('/content/drive/MyDrive/ThesisAllocationSystem/' + x)
with open(x + '.csv', 'w', encoding = 'Latin-1') as out_file:
csv_out = csv.writer(out_file)
csv_out.writerow(['FileName', 'Content'])
for fileName in Path('.').glob('*.txt'):
lines = [ ]
with open(str(fileName.absolute()),'rb') as one_text:
for line in one_text.readlines():
lines.append(line.decode(encoding='Latin-1',errors='ignore').strip())
csv_out.writerow([str(fileName),' '.join(lines)])
txt_to_csv('data_replication')
我猜数据类型可能是这里的问题,并感谢任何帮助我的尝试。
解决方案
您可以pandas
为此使用:
from glob import glob
import pandas as pd
files = glob('/content/drive/MyDrive/ThesisAllocationSystem/*.txt') # create list of text files
data = [[i, open(i, 'rb').read()] for i in files] # create a list of lists with file names and texts
df = pd.DataFrame(data, columns=['FileName', 'Content']) # load the data in a pandas dataframe
df.to_csv('data_replication.csv') # save to csv
推荐阅读
- javascript - 即时编译为 WASM
- go - 为什么golang nacl box和sign包使用不同的key长度?
- php - 如何从集合结果数组中排除关系列-急切加载
- c# - C# Winform 单选按钮行为
- c# - WPF DataGrid动态列数,DataCell背景颜色根据值变化
- linux - /usr/bin/ld: /usr/include/c++/8/bits/stl_construct.h:107: 未定义对 *** 的引用
- c# - Xamarin C# Visual Studio - 自动 Mailto - 在代码后面向用户发送电子邮件?
- java - 我的搜索栏在 BottomSheetDialog 中不起作用
- android - 如何通过意图将参数从我的本机代码传递到颤动?
- angular - 我无法从 Angular 组件测试中调用 stenciljs 子组件方法