我有一个csv
,其中包含类似
AAABBBBCCCDDDDDDD
EEEFFFRRRTTTHHHYY
当我运行如下代码时:
rows = csv.reader(csvfile)
for row in rows:
print(" ".join('%s' %row for row in rows))
它将按以下方式进行投影:
['AAABBBBCCCDDDDDDD']
['EEEFFFRRRTTTHHHYY']
但是我想显示为如下一系列单词:
AAABBBBCCCDDDDDDDEEEFFFRRRTTTHHHYY
代码有什么问题吗?
答案 0 :(得分:0)
您的示例看起来像您只需要
with open(csvfile) as inputfile: # misnomer; not really proper CSV
for row in inputfile:
print(row.rstrip('\n'), end='')
答案 1 :(得分:0)
您提供的示例看起来不像一个csv文件。它看起来像一个简单的文本文件。您可能会遇到一些简单的事情:
Input.txt
AAABBBBCCCDDDDDDD
EEEFFFRRRTTTHHHYY
Solution.py
input_filename = "Input.txt"
with open(input_filename) as input_file:
print("".join(x.rstrip('\n') for x in input_file))
这是利用:
.rstrip()
将其删除.join()
方法甚至可以接受任何可迭代的方法... .join()
使用.rstrip()
来格式化来自输入文件的每一行。编辑:好的,让我们进一步分解我的答案:
for line in input_file: ...
)。 (x.rstrip() for x in input_file)
将是一个迭代器,它接受input_file
的每个元素并对其应用.rstrip()
.join()
将使用该字符串作为分隔符的迭代器提供的元素粘合在一起。由于我在此处使用空字符串,因此不会使用分隔符。我已经使用了之前定义的迭代器。print()
.join()
操作提供的字符串。我对我的答案做了一个小小的更正,因为有一个极端的情况,如果输入文件中一行的末尾有空格或制表符,那么如果我使用x.rstrip()
而不是它们将被删除。 x.rstrip('\n')
答案 2 :(得分:-1)
您可以以空字符串开头,对于从csv文件读取的每一行,请删除末尾的换行符,然后将内容添加到空字符串中。
joined = ""
with open(csvfile) as f:
for row in f:
joined = joined + row.replace("\n","")
print(joined)
输出:
>> AAABBBBCCCDDDDDDDEEEFFFRRRTTTHHHYY