我在python中的csv阅读器和编写器有问题.每当我尝试获取一个CSV文件并将列数从大约37个减少到6个时,这就是我得到的那种输出.一行示例:
0,"JOHNSON,JOHN J.",JOHN J. JOHNSON,TECH879,检验技师,汽车检测装置
请注意引用第二个字段.这是我在文本编辑器中查看时看到的内容.我想要引用所有字段.这儿存在一个问题.首先,我的代码,它的一个例子:
import os
import csv
alpha = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
with open(os.getcwd()+'/dl1/filepfr062220155.csv','w') as fp:
identity = 0
for i in alpha:
csvholder = open(os.getcwd()+'/dl1/pfr/'+i+'.csv','rb')
spamreader = csv.reader(csvholder, delimiter=',')
for row in spamreader:
if 'Sort Name' in row[0]:
pass
else:
###SEE HERE###
data = [[str(identity),row[0],row[1],row[2],row[3],row[37]]]
identity+=1
a = csv.writer(fp,delimiter=',',quotechar='"')
a.writerows(data)
Run Code Online (Sandbox Code Playgroud)
问题是,关于我在哪里标记了"### SEE HERE ###,我试过在引号中包含未引用的字段,如下所示:
data = [['"'+str(identity)+'"',row[0],'"'+row[1]+'"','"'+row[2]+'"','"'+row[3]+'"','"'+row[37]+'"']]
Run Code Online (Sandbox Code Playgroud)
但是这给了我看起来像这样的输出,带有三引号,这是不可接受的......就像这样:
"""4""","JOHNSON,JOHN W.","""JOHN W. JOHNSON""","""TEC5681""",""""检查技师""",""""汽车检查单元"""
这些行的原始形式是这样的:
"NAME","NAME","NAME","NAME"等......
所以我不知道为什么在最终输出中只引用了一个字段.我要么引用所有引用的字段,要么引用它们.
我已经尝试过在阅读器和作者上使用和不使用"quotechar",所有这些组合.
因此,如果您可以告诉我如何保留原始文件中的原始引用或如何解决此三重引用问题,以便我可以手动重新格式化,那将是很好的.
我想从一些网页中挑选几行信息.我想(或者我)打开网页,遍历各行,检查每个关键字,找到我想要的信息.
这些页面需要一个会话.
def getpage()
home = 'website'
exstension1 = '/input/page'
extension2 = '/output/page'
indexnumber = '11100'
sess = requests.Session()
getter = sess.get(home+extension1)
payload = {'foo':'bar','indexnumber':indexnumber}
getter = sess.post(home+extension2,data=payload)
return sess
Run Code Online (Sandbox Code Playgroud)
正如我在标题中所说的那样,我需要一个.get()的readlines()方法
a.get(somePage)###Now could I put...###.readlines()
####or
a.get(somePage).text.readlines()###?
###I don't think I want the following, for performance reasons, correct me if I am wrong
F = open(someNewFile,mode='w')
F.write(a.get(somePage).text)
F.close()
F = open(thatFileIJustMade).readlines()###All that just to turn it into a File on which I can use readlines?
Run Code Online (Sandbox Code Playgroud)
谢谢
当我尝试
a.get(somePage).readlines()
Run Code Online (Sandbox Code Playgroud)
我明白了
AttributeError: …
Run Code Online (Sandbox Code Playgroud) 编辑:这不是一个重复的问题.这里收到的答案实际上在程序中创建了新的变量/对象.这可能是也可能不是最适合我的事情并不重要.建议的"复制"实际上并不创建新的"对象"/"变量",它只是操纵字典的功能.
这不是一个重复的答案.
我想在Python程序中使用用户生成的变量.
例如,我想有一个
raw_input('Enter new variable: ')
Run Code Online (Sandbox Code Playgroud)
也许这个人想要调用他的新变量'X',也许也可以将它设置为整数0.
然后,如果它适合他,可以创建另一个变量'Y'与raw_input()...和Z,或ABC PHI OMEGA ...等等,只要他喜欢....分别将它们设置为所有整数.
这似乎是列表的工作.它只是一个列表和附加的工作,并从列表中调用?
记住我想命名/创建一个新的变量ex nihilo.我不是问如何使用raw_input()或其他任何东西将变量设置为变量的枯燥问题.
如果你问为什么,那是因为我有一种天真的怀疑,从长远来看这会更快.