【问题标题】:Read TXT file with semicolon separated texts using Python使用 Python 读取带有分号分隔文本的 TXT 文件
【发布时间】:2019-10-31 14:30:29
【问题描述】:

文本文件中的示例数据如下:

从表 1 中选择 *;从表2中选择*; select * from table3;Select * from table4

我想阅读此文本并在分号(;) 处分成多行并分别处理每一行。 基本上每一行代表一个选择查询,我需要对数据库逐一查询

我尝试了下面的代码,但出现错误:AttributeError: 'list' object has no attribute 'split'

ListData = open(FilePath).readlines()
for line in ListData.split(';'):


data.append(line)

也尝试了下面的代码,但出现 AttributeError 错误:'_io.TextIOWrapper' object has no attribute 'split'

with open(SQLFilePath) as f:
    for line in f.split(';'):
      data.append(line)

谢谢

【问题讨论】:

  • 您是否研究过str.split 方法?到目前为止,您尝试了哪些代码,为什么它不起作用?
  • 感谢您的评论,我用我尝试过的代码更新了问题

标签: python-3.x pandas list dataframe


【解决方案1】:

尝试使用 for()。例如:

text='Select * from Table1; Select * from Table2; select * from table3;Select * from table4'
for t in text.split(';'):
    print(t)

答案:

Select * from Table1
 Select * from Table2
 select * from table3
Select * from table4

如果从文件中读取数据,可以使用 pandas:

import pandas as pd
df=pd.read_csv(r'C:\Users\Desktop\test.txt', header = None)
t=[]
for index, row in df.itertuples():
    t=t+str(row).split(';')

控制台:

print(t)
['Select * from Table1', ' Select * from Table2', ' select * from table3', 'Select * from table4', 'Select * from Table1', ' Select * from Table2', ' select * from table3', 'Select * from table4']

【讨论】:

  • 感谢 Anna 的回答,我尝试了类似的解决方案,但遇到了问题(我用我尝试过的代码示例更新了问题)
  • @CodeStar 如果不是您需要的,请添加您期望的输入和输出
  • 谢谢,这就是我要找的......有没有办法忽略新行('\")以防某些行以新行结尾?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-06
  • 2015-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多