不带分隔符和空格的df.to_csv

2024-09-30 20:37:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个txt文件,所以我使用了这个

df1.to_csv('C:/Users/junxonm/Desktop/Filetest.txt',sep=" " ,index=False, header=False)

我可以完全拆下分离器

我试过这个

df1.to_csv('C:/Users/junxonm/Desktop/Filetest.txt',sep="" ,index=False, header=False)

而这个

df1.to_csv('C:/Users/junxonm/Desktop/Filetest.txt',sep=str('') ,index=False, header=False)

两者都不起作用

Traceback (most recent call last):
  File "C:/Users/junxonm/PycharmProjects/kemper/JDSNFILE2.py", line 371, in <module>
    df1.to_csv('C:/Users/junxonm/Desktop/Filetest.txt',sep=str(""),index=False, header=False)
  File "C:\Program Files\Python37\lib\site-packages\pandas\core\generic.py", line 3228, in to_csv
    formatter.save()
  File "C:\Program Files\Python37\lib\site-packages\pandas\io\formats\csvs.py", line 200, in save
    self.writer = UnicodeWriter(f, **writer_kwargs)
  File "C:\Program Files\Python37\lib\site-packages\pandas\io\common.py", line 517, in UnicodeWriter
    return csv.writer(f, dialect=dialect, **kwds)
TypeError: "delimiter" must be a 1-character string

你有什么建议或其他想法吗

非常感谢


Tags: csvtopytxtfalseindexlineusers
3条回答

问题是CSV代表逗号分隔的字段。变体允许用另一个一个字符长的分隔符替换逗号。然后,我们希望始终能够从csv文件中提取单个字段。如果分隔符为空,则无法提取回字段,因此它不能是CSV文件。句点这就是to_csv坚持使用单字符分隔符的原因。如果要打印不带分隔符和系统默认文件结尾的字段,应使用print而不是to_csv

with open('C:/Users/junxonm/Desktop/Filetest.txt', 'w') as fd:
    for i in range(len(df1)):
        print(df1.iloc[i,:], sep='', file=fd)

尝试像这样将数据框写入新文本文件(文件名使用原始字符串,标题和索引使用None值而不是False):

df1.to_csv(r'C:/Users/junxonm/Desktop/Filetest.txt',
           header=None,
           index=None,
           sep=' ',
           mode='w'
           )

你可以试试这个例子

### ...
   
df.to_csv('test.txt',  
          header=None,
          sep=" ", 
          quoting=csv.QUOTE_NONE, 
          escapechar=" ")

相关问题 更多 >