如何在没有csv.writer的情况下在python中创建文本文件?
我需要一个带有txt扩展名的逗号分隔txt文件。 “a,b,c”如何在没有csv.writer的情况下在python中创建文本文件?
我用csv.writer创建了csv文件,改变了扩展名。另一个编将不会使用/处理数据。我尝试过“wb”,“w”。
F = open(Fn, 'w')
w = csv.writer(F)
w.writerow(sym)
F.close()
用记事本打开---这些是完整的文件。 它们的文件:使用他们的GUI创建用于三个符号
PDCO,ICUI,DVA
我的文件:使用python
PDCO,ICUI,DVA
创建测试:打开文件 - thier工作,打开了我的文件 - 失败。 简单的打开和关闭,保存在记事本中。打开我的file--工作
Works= 'PDCO,ICUI,DVA'
Fails= 'PDCO,ICUI,DVA\r\r\n'
编辑:写txt文件没有的CVS作家.....
sym = ['MHS','MRK','AIG']
with open(r'C:\filename.txt', 'w') as F: # also try 'w'
for s in sym[:-1]: # separate all but the last
F.write(s + ',') # symbols with commas
F.write(sym[-1]) # end with the last symbol
试试这个:
with open('file_that_works.csv', 'rb') as testfile: # file is automatically
d = csv.Sniffer().sniff(testfile.read(1024)) # closed at end of with
# block
with open(Fn, 'wb') as F: # also try 'w'
w = csv.writer(F, dialect=d)
w.writerow(sym)
为了进一步解释:这看起来在工作.csv文件的样本,推断其格式。然后它使用该格式编写一个新的.csv文件,希望不必在记事本中重新保存。
编辑:如果您使用的程序不接受多行输入(?!),则不要使用csv。刚做这样的事情:
syms = ['JAGHS','GJKDGJ','GJDFAJ']
with open('filename.txt', 'wb') as F:
for s in syms[:-1]: # separate all but the last
F.write(s + ',') # symbols with commas
F.write(syms[-1]) # end with the last symbol
或者更简洁:
with open('filename.txt', 'wb') as F:
F.write(','.join(syms))
此外,检查不同的文件扩展名(即.TXT,.CSV等),以确保这不是问题。如果这个程序扼杀在换行符上,那么任何事情都是可能的。
对我来说,它看起来像你并不确切地知道你的第三方应用程序的输入格式。如果.CSV没有被重新调整,那可能是别的。
您是否尝试更改分隔符';'到 ''
import csv
spamWriter = csv.writer(open('eggs.csv', 'wb'), delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
spamWriter.writerow(['Spam'] * 5 + ['Baked Beans'])
spamWriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
您可以在CSV Python API
所以一看,我保存为文本文件。
现在,用python创建我自己的txt文件。
他们有什么文件和文件之间的确切区别是什么?精确。
我认为这个问题是您的文件写入模式,按CSV file written with Python has blank lines between each row
如果你喜欢
csv.writer(open('myfile.csv', 'w'))
csv.writer结束其在行 '\ r \ n',并创建csv文件Python的文本文件处理(在Windows机器上)然后将'\ n'转换为'\ r \ n',导致以'\ r \ r \ n'结尾的行。很多程序都会窒息这个;记事本将其视为一个问题,并将多余的'\ r'除去。
如果使用
csv.writer(open('myfile.csv', 'wb'))
它产生预期的 '\ r \ n' 结束,无论你希望应该工作线。
编辑: @senderle有一个好点;请尝试以下操作:
goodf = open('file_that_works.txt', 'rb')
print repr(goodf.read(100))
badf = open('file_that_fails.txt', 'rb')
print repr(badf.read(100))
粘贴在这里的结果,所以我们可以看到两个比较字节为每个字节。
我怀疑@ Hugh的评论是正确的,这是一个编码问题。
当您在记事本中另存为时,在编码下拉菜单中选择了什么?如果您选择不同的编码,那么部分或全部的编码都无法由第三方程序打开?
那么究竟是什么问题?我还不完全明白,请尝试更具体。 – 2011-01-27 15:37:01
你面临的问题是什么? .csv也是.txt文件(只是不同的扩展名)。 – birryree 2011-01-27 15:37:09
问题,不知道......我用创建的文件作为源文件而不是在信息中输入。其他编就忽略了它。 – Merlin 2011-01-27 15:39:52