【问题标题】:How do I convert a dataframe of strings to csv in python?python - 如何在python中将字符串数据帧转换为csv?
【发布时间】:2020-04-19 05:52:04
【问题描述】:

我创建了一个程序,它使用 python glob 包获取目录中所有文件的名称

import glob

path = 'D:\Movies\American and Brit Cinema'

files = [f for f in glob.glob(path + "**/*.avi", recursive=True)]

for f in files:
    print(f[35:])

我确实得到了我想要的输出:

The.Descendants.2011.
The.Expendables.2010.
The.Hangover.2009
The.Impossible.2012
the.invention.of.lying.2009
The.Muppets.2011.
The.Social.Network.2010
Tron.Legacy.2010

但是,我想获取此电影标题列表并将其导出为 csv

当我尝试时,我得到以下错误-

    f.to_csv('EnglishMovies.docx')

AttributeError: 'str' object has no attribute 'to_csv'

我也尝试转换为列表,但我得到的数据很乱。我只希望我的最终 csv 文件包含我目录中所有文件的名称

【问题讨论】:

  • 在您的示例中,您只需创建名为 fileslist 并持有 strs,dataframe 标签与您的问题有何关联?

标签: python string csv glob


【解决方案1】:

使用csv模块

import csv

with open('output.csv',  mode='w') as csvfile:
    writer = csv.writer(csvfile, delimiter=',', quoting=csv.QUOTE_MINIMAL)
    for f in files:
        writer.writerow([f])

【讨论】:

    【解决方案2】:

    您可以直接打开.csv文件并写入。

    with open("path_to_csv/movies.csv", "w") as fp:
        for f in files:
            fp.write(f+"\n")
    

    【讨论】:

      【解决方案3】:

      如果要使用.to_csv方法,可以创建一个数据框,然后写入csv。

      import glob
      import pandas as pd
      
      path = 'D:\Movies\American and Brit Cinema'
      files = [f for f in glob.glob(path + "**/*.avi", recursive=True)]
      df = pd.DataFrame(columns = ['Movie Names'])
      df['Movie Names'] = files
      df['Movie Names'] = df['Movie Names'].str[35:]
      df.to_csv(path + '\EnglishMovies.csv')
      
      

      【讨论】:

        猜你喜欢
        • 2014-06-07
        • 1970-01-01
        • 1970-01-01
        • 2020-06-10
        • 1970-01-01
        • 2021-06-24
        • 2018-07-17
        • 1970-01-01
        相关资源
        最近更新 更多