【问题标题】:Converting many .txt files into csv and combining them将许多 .txt 文件转换为 csv 并将它们组合起来
【发布时间】:2019-07-17 17:16:32
【问题描述】:

我有很多 .txt 文件。我想将一些以特定名称结尾的文件转换为 csv 并将它们组合成一个 csv。

### Folder Name: text_files
python_gramm.py
aadd01.txt
aaxx02.txt
aaff03.txt
hhdd01.txt
attd02.txt
auud03.txt
.
.

一个文本文件包含如下所示的数据列:

我只想将名称为“___01.txt”的 .txt 文件转换为 csv 格式并将它们合并 我的代码

#### python_gramm.py 
import os
import glob
    os.chdir('text_files/')
    extension = 'txt'
    all_filenames = [i for i in glob.glob('*01.{}'.format(extension))]
    #combine all files in the list
    combined_csv = pd.concat([pd.read_csv(f, delimiter='\t') for f in all_filenames ])
    #export to csv
    combined_csv.to_csv( "combined_csv.csv", index=False, encoding='utf-8-sig')

以上代码运行成功,没有错误。

print(combined_csv)
0      4.18890   9.325750  ...  2.438860e-05            4.100250e+04
1      4.21399   9.339870  ...  2.461170e-05            4.063090e+04
2      4.26399   9.341690  ...  2.451400e-05            4.079280e+04
3      4.80021   9.346420  ...  2.442850e-05            4.093570e+04
4      6.50219   9.339300  ...  2.432250e-05            4.111400e+04

【问题讨论】:

  • @MarkTolonen 这给出了错误。但是,我上面的代码现在成功运行了,但是出现了新问题。我更新了我的 q
  • 如果你更新你的问题,让它有工作代码和答案,那么这个问题就不再是问题了。这也使答案不再有意义,因为没有提到问题。

标签: python csv


【解决方案1】:

你的代码说

glob.glob('1.{}'.format(extension))

但我认为你的意思是

glob.glob('*01.{}'.format(extension))

我认为您的 glob 没有找到任何名为“1.txt”的文件。

【讨论】:

  • 我注意到您进行了编辑以提供“01”,但您还需要星号。
  • 是的!现在它确实运行成功了。但是又多了一个错误。我更新了我的问题。
  • 是的!现在它运行成功了,但新的问题来了。我更新了我的问题。你能检查一下吗?
  • 对不起,我现在不能让整个事情运行起来,但是试着解开那个理解,这样你就可以准确地看到它失败的地方。在单独的行上重写每个步骤,直到它起作用,然后你可以将它重新组合在一起,这样它既漂亮又像 Python :)
  • 代码运行成功。但唯一的问题是,.csv 文件在列之间有意外的\t。我在我的问题中展示了一个输出样本。任何猜测,在哪里提到分隔符?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-05
相关资源
最近更新 更多