Hướng dẫn python read space separated file - python đọc tệp được phân tách bằng dấu cách

Liệu kỹ thuật tương tự cho các mô -đun CSV không hoạt động?

import csv
reader = csv.reader(open("filename"), delimiter="\t")

Phân đoạn có thể là "\ s" hoặc "\ t".

Bạn cũng có thể sử dụng DicTreader theo cách này:

f = open(filename, '')
try:
    reader = csv.DictReader(f)
    for row in reader:
        print row
finally:
    f.close()

Bạn cũng có thể sử dụng kỹ thuật vũ lực

for line in open(filename):
    listWords = line.split("\t")

Chức năng phân chia:

>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']

Để tính toán không có ngày nào, hãy sử dụng mô -đun DateTime: http://docs.python.org/l Library/datetime.html

>>> import datetime
>>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
>>> k.days
105
>>> 

Để chuyển đổi tệp được chọn không gian thành CSV, trước tiên hãy đọc tệp thành gấu dữ liệu bằng cách sử dụng Alice DataScience $100000 Bob Programmer $90000 Carl Manager $122000 Dave Freelancer $1440004 và sau đó ghi DataFrame vào một tệp bằng cách sử dụng Alice DataScience $100000 Bob Programmer $90000 Carl Manager $122000 Dave Freelancer $1440005.

Gandas

Alice DataScience $100000
Bob Programmer $90000
Carl Manager $122000
Dave Freelancer $144000
8

f = open(filename, '')
try:
    reader = csv.DictReader(f)
    for row in reader:
        print row
finally:
    f.close()
7

f = open(filename, '')
try:
    reader = csv.DictReader(f)
    for row in reader:
        print row
finally:
    f.close()
8

f = open(filename, '')
try:
    reader = csv.DictReader(f)
    for row in reader:
        print row
finally:
    f.close()
9

Gandas

Alice DataScience $100000
Bob Programmer $90000
Carl Manager $122000
Dave Freelancer $144000
9

f = open(filename, '')
try:
    reader = csv.DictReader(f)
    for row in reader:
        print row
finally:
    f.close()
7

for line in open(filename):
    listWords = line.split("\t")
2

f = open(filename, '')
try:
    reader = csv.DictReader(f)
    for row in reader:
        print row
finally:
    f.close()
9

Bản tóm tắt

Gandas

Alice DataScience $100000
Bob Programmer $90000
Carl Manager $122000
Dave Freelancer $144000
8

f = open(filename, '')
try:
    reader = csv.DictReader(f)
    for row in reader:
        print row
finally:
    f.close()
7

for line in open(filename):
    listWords = line.split("\t")
6

f = open(filename, '')
try:
    reader = csv.DictReader(f)
    for row in reader:
        print row
finally:
    f.close()
9

Gandas

Alice DataScience $100000
Bob Programmer $90000
Carl Manager $122000
Dave Freelancer $144000
9

Bản tóm tắt

f = open(filename, '')
try:
    reader = csv.DictReader(f)
    for row in reader:
        print row
finally:
    f.close()
7

>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
0

f = open(filename, '')
try:
    reader = csv.DictReader(f)
    for row in reader:
        print row
finally:
    f.close()
9

Cách dễ nhất để chuyển đổi tệp được phân phối không gian thành tệp Giá trị được phân tách bằng dấu phẩy (CSV) là sử dụng ba dòng mã sau:

  1. >>> t = 'ID YR MO DA YrM MoM DaM'
    >>> t.split(" ")
    ['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
    
    2
  2. >>> t = 'ID YR MO DA YrM MoM DaM'
    >>> t.split(" ")
    ['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
    
    3
  3. >>> t = 'ID YR MO DA YrM MoM DaM'
    >>> t.split(" ")
    ['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
    
    4

Chúng tôi sẽ giải thích điều này và các cách tiếp cận khác chi tiết hơn tiếp theo, tiếp theo đối với Phương pháp 3 cho phương pháp chính xác này.Method 3 for this exact method.

Xây dựng vấn đề

Cho một tệp được phân tách không gian với một hoặc nhiều khoảng trống giữa hai giá trị trong một cột nhất định

Đầu vào:

>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
5
>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
5

Alice DataScience $100000
Bob Programmer $90000
Carl Manager $122000
Dave Freelancer $144000

Làm thế nào để chuyển đổi các giá trị được chọn không gian thành tệp các giá trị được phân tách bằng dấu phẩy (CSV)?

Đầu ra:

>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
6
>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
6

0,Alice,DataScience,$100000
1,Bob,Programmer,$90000
2,Carl,Manager,$122000
3,Dave,Freelancer,$144000

Chúng tôi cũng sẽ xem xét các biến thể nhỏ của vấn đề này. Đi nào!

Phương pháp 1: Chuỗi thay thế khoảng trắng đơn lẻ

Cách đơn giản nhất để chuyển đổi một không gian được chọn thành tệp được phân tách bằng dấu phẩy (CSV) trong Python là thay thế từng khoảng trống

>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
7 bằng ký tự dấu phẩy
>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
8 bằng phương pháp
>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
9. Điều này hoạt động nếu hai giá trị được phân tách bằng chính xác một không gian trống.

Ở đây, một ví dụ về tệp đầu vào

>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
5:

Alice DataScience $100000
Bob Programmer $90000
Carl Manager $122000
Dave Freelancer $144000

Dưới đây, một ví dụ về một số mã để chuyển đổi tệp được chọn không gian thành tệp CSV:

with open('my_file.txt') as infile:

    # Read space-delimited file and replace all empty spaces by commas
    data = infile.read().replace(' ', ',')

    # Write the CSV data in the output file
    print(data, file=open('my_file.csv', 'w'))
    

Tệp đầu ra

>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
6:

Alice,DataScience,$100000
Bob,Programmer,$90000
Carl,Manager,$122000
Dave,Freelancer,$144000

Nếu bạn có bất kỳ nghi ngờ nào, hãy thoải mái đi sâu vào các hướng dẫn liên quan của chúng tôi:

  • Phương thức thay thế chuỗi python
  • Hàm Python
    >>> import datetime
    >>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
    >>> k.days
    105
    >>> 
    
    2
  • Python
    >>> import datetime
    >>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
    >>> k.days
    105
    >>> 
    
    3 để tệp
  • Hàm Python
    >>> import datetime
    >>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
    >>> k.days
    105
    >>> 
    
    3
  • Người quản lý bối cảnh Python

Phương pháp 2: Regex thay thế khoảng trắng tùy ý

Để thay thế một hoặc nhiều khoảng trống giữa hai giá trị cột bằng dấu phẩy

>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
8 và có được CSV, hãy sử dụng thao tác biểu thức thông thường
>>> import datetime
>>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
>>> k.days
105
>>> 
6 trên
>>> import datetime
>>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
>>> k.days
105
>>> 
7 được phân tách không gian. Nếu bạn cũng cần thay thế các ký tự bảng, hãy sử dụng
>>> import datetime
>>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
>>> k.days
105
>>> 
8 thay thế.

Nếu bạn có bất kỳ nghi ngờ nào, hãy thoải mái đi sâu vào các hướng dẫn liên quan của chúng tôi:

  • Phương thức thay thế chuỗi python
  • Hàm Python
    >>> import datetime
    >>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
    >>> k.days
    105
    >>> 
    
    2
  • Python
    >>> import datetime
    >>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
    >>> k.days
    105
    >>> 
    
    3 để tệp
  • Hàm Python
    >>> import datetime
    >>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
    >>> k.days
    105
    >>> 
    
    3

Người quản lý bối cảnh Python

f = open(filename, '')
try:
    reader = csv.DictReader(f)
    for row in reader:
        print row
finally:
    f.close()
0

Dưới đây, một ví dụ về một số mã để chuyển đổi tệp được chọn không gian thành tệp CSV:

f = open(filename, '')
try:
    reader = csv.DictReader(f)
    for row in reader:
        print row
finally:
    f.close()
1

Tệp đầu ra

>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
6:

Alice,DataScience,$100000
Bob,Programmer,$90000
Carl,Manager,$122000
Dave,Freelancer,$144000

Nếu bạn có bất kỳ nghi ngờ nào, hãy thoải mái đi sâu vào các hướng dẫn liên quan của chúng tôi:

Phương thức thay thế chuỗi python

Ở đây, một ví dụ về tệp đầu vào

>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
5:

f = open(filename, '')
try:
    reader = csv.DictReader(f)
    for row in reader:
        print row
finally:
    f.close()
0

Dưới đây, một ví dụ về một số mã để chuyển đổi tệp được chọn không gian thành tệp CSV:

f = open(filename, '')
try:
    reader = csv.DictReader(f)
    for row in reader:
        print row
finally:
    f.close()
4

Tệp đầu ra

>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
6:

0,Alice,DataScience,$100000
1,Bob,Programmer,$90000
2,Carl,Manager,$122000
3,Dave,Freelancer,$144000

Nếu bạn có bất kỳ nghi ngờ nào, hãy thoải mái đi sâu vào các hướng dẫn liên quan của chúng tôi:

  • Phương thức thay thế chuỗi python
  • Hàm Python
    >>> import datetime
    >>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
    >>> k.days
    105
    >>> 
    
    2

Python >>> import datetime >>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10) >>> k.days 105 >>> 3 để tệp

Hàm Python

>>> import datetime
>>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
>>> k.days
105
>>> 
3

  • Phương pháp 1: Chuỗi thay thế khoảng trắng đơn lẻ: String Replace Single Whitespace
  • Phương pháp 2: Regex thay thế khoảng trắng tùy ý: Regex Replace Arbitrary Whitespace
  • Để thay thế một hoặc nhiều khoảng trống giữa hai giá trị cột bằng dấu phẩy
    >>> t = 'ID YR MO DA YrM MoM DaM'
    >>> t.split(" ")
    ['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
    
    8 và có được CSV, hãy sử dụng thao tác biểu thức thông thường
    >>> import datetime
    >>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
    >>> k.days
    105
    >>> 
    
    6 trên
    >>> import datetime
    >>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
    >>> k.days
    105
    >>> 
    
    7 được phân tách không gian. Nếu bạn cũng cần thay thế các ký tự bảng, hãy sử dụng
    >>> import datetime
    >>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
    >>> k.days
    105
    >>> 
    
    8 thay thế.
    : Pandas
    Alice DataScience $100000
    Bob Programmer $90000
    Carl Manager $122000
    Dave Freelancer $144000
    8 and
    Alice DataScience $100000
    Bob Programmer $90000
    Carl Manager $122000
    Dave Freelancer $144000
    9

Python Regex

>>> import datetime
>>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
>>> k.days
105
>>> 
9


Python Regex Alice DataScience $100000 Bob Programmer $90000 Carl Manager $122000 Dave Freelancer $1440000 Lớp học nhân vật

Hướng dẫn python read space separated file - python đọc tệp được phân tách bằng dấu cách
Python Regex
Alice DataScience $100000
Bob Programmer $90000
Carl Manager $122000
Dave Freelancer $144000
1 Định lượng

Hướng dẫn python read space separated file - python đọc tệp được phân tách bằng dấu cách

Siêu năng lực Python Regex

Để giúp học sinh đạt được thành công cao hơn của Python, ông đã thành lập trang web giáo dục chương trình Finxter.com. Ông là tác giả của cuốn sách lập trình phổ biến Python Oneer (Nostarch 2020), đồng tác giả của loạt sách Break Break Python, những cuốn sách tự xuất bản, người đam mê khoa học máy tính, freelancer và chủ sở hữu của một trong 10 blog Python lớn nhất trên toàn thế giới.

Niềm đam mê của ông là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ tăng cường các kỹ năng của họ. Bạn có thể tham gia học viện email miễn phí của anh ấy ở đây.