繁体   English   中英

从目录到.csv 列的文件名(每行文件名;无间隙行)

[英]filenames from directory to .csv column (filename per row; no gap rows)

我已经设法通过以下方法快速地做到了这一点: 但是,问题是每个写入的行与我的文件名之间都有一个空白行(空白行)。 我曾尝试使用r, w, and w+ - 有什么想法可以在每个写入行之间没有空白行的情况下完成此操作吗?

import config
import math
import os, csv

with open(config.CSV, 'w+') as f:
    writer = csv.writer(f)
    for path, dirs, files in os.walk(config.files):
        for filename in files:
            writer.writerow([filename])

CVS 输出如下:(写入文件名很好;但不想手动处理它们之间的这些额外空格/空白行)。

1 | filename1.pdf
2 |
3 | filename2.pdf
4 |
5 | filename3.pdf

您应该通过传递newline=''选项打开文件:

csv.writer(csvfile, dialect='excel', **fmtparams) Return a writer object 负责将用户的数据转换为给定文件上的分隔字符串,例如 ZA8CFDE6331BD59EB2AC96F8911ZB4。 csvfile 可以是任何带有 write() 方法的 object。 如果csvfile是一个文件 object,它应该用newline=''打开

脚注阐明

如果未指定newline='' ,则嵌入在引用字段中的换行符将不会被正确解释,并且在使用\r\n linendings on write 的平台上将添加额外的\r 指定newline=''应该总是安全的,因为csv模块自己(通用)换行处理。

我相信这是因为当您阅读文件时,末尾有一个不可见的 '\n'。 只需删除它,它应该没问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM